wangluo010 发表于 2017-12-24 22:37:57

centos 7.2 Apache+mysql+php step by step备忘

  1. 如何允许laravel程序执行sudo shell脚本?
  chmod u+w /etc/sudoers ;
  echo "apache ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
  再注释掉Defaults requiretty这行,否则会要求有tty才能运行!(TODO: 写shell实现自动化)
  chmod u-w /etc/sudoers
  2. OS: CentOS 7.2 x64
  3. 安装zend server ce: (由于zend现在修改了策略开始收费,我们必须自己搭建环境了!)
  tar xvfz ZendServer-8.0.2-RepositoryInstaller-linux.tar.gz
  cd ZendServer-8.0.2-RepositoryInstaller-linux
  ./install_zs.sh 5.6
  4. 常用其他命令:
  yum search php-:列出所有php-的包
  yum search git:列出所有git的包
  yum info git.x86_64: 列出git.x86_64的包的细节,比如版本信息,如果太老,可能需要重新安装
  由于通过查看yum info php.x86_64发现版本是很低的,因此要用PHP5.6以上我们必须自己build
  5. 从源代码build安装git
  rpm -qa |grep git /列出所有已经安装的包含git字符串的包
  由于git默认版本太老1.8.x我们需要erase掉(但是要注意其erase时会把dependency也清除掉)
  yum erase git-1.8.3.1-6.el7_2.1.x86_64
  yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
  yum installgcc perl-ExtUtils-MakeMaker
  cd /usr/src
  wget https://www.kernel.org/pub/software/scm/git/git-2.0.4.tar.gz
  tar xzf git-2.0.4.tar.gz
  cd git-2.0.4
  make prefix=/usr/local/git all
  make prefix=/usr/local/git install
  echo "export PATH=/usr/local/git/bin:$PATH" >> /etc/bashrc
  source /etc/bashrc
  git --version
  6. 安装apache
  yum install httpd
  systemctl start httpd.service (注意以前的service httpd restart已经全部改为systemctrl 动作 服务名.service 了!)
  测试 http://localhost 确认apache已经正确启动
  systemctl enable httpd.service   // 开机启动httpd
  systemctl disable httpd.service   // 禁止开机启动httpd
  // apache的一些modules都放在 /usr/lib54/httpd/目录下,有可能部分没有默认安装,Cannot load modules/mod_authn_alias.so ,解决办法:(暂时注释掉了)

  // AH00548: NameVirtualHost has no effect and will be removed in the next>  apachectl -v // 显示版本信息 Server version: Apache/2.4.6 (CentOS) Server built:   Nov 14 2016 18:04:44
  // 新版本apche一个虚拟主机配置如下:
  "
  <VirtualHost *:80>
  ServerAdmin admin@kidsit.cn
  DocumentRoot /assets/www/newkidsitl5229/public/
  ServerName kidsit.cn
  #ServerAlias *.kidsit.cn
  ErrorLog logs/kidsit_staging.error_log
  CustomLog logs/kidsit_staging.access_log common
  <Directory /assets/www/newkidsitl5229/public/>
  DirectoryIndex index.html index.php
  AllowOverride All// 注意这个用来控制允许.htaccess文件被apache使用 rewrite的!
  Require all granted
  </Directory>
  </VirtualHost>
  "
  apachectl -M // 列出apache已经加载的so(shared object以LoadModule的方式加载进来的)
  apachectl -l // 列出compiled in module
  ServerName kidsit.cn:80// 虽然不设置没有什么大的问题,但是会在systemctl status -l httpd.service中出现一个错误(虽然不影响使用)
  7. 安装mysql
  注意:由于centos7自带mariadb,而不再自带mysql,因此你直接运行yum install mysql-server会报找不到mysql,方法:
  rpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm // 这个是myslq的repo,安装之后yum search mysql就能看到mysql-community-server了
  yum install mysql-community-server       // 只能安装mysql-community-server了,因为oracle收购mysql后,搞了多种license为了收钱
  systemctl start mysqld.service
  systemctl enable mysqld.service
  mysql -uroot -p // 默认没有密码,登录进去后再修改密码
  set password for 'root'@'localhost' =password('guozhiyindba@01');
  8. 安装PHP
  yum install git gcc gcc-c++ libxml2-devel pkgconfig openssl-devel bzip2-devel curl-devel libpng-devel libjpeg-devel libXpm-devel freetype-devel gmp-devel libmcrypt-devel mariadb-devel aspell-devel recode-devel autoconf bison re2c libicu-devel httpd-devel
  // 注意httpd-devel是用来包含apxs2工具的,否则无法build出libphp7.so文件来
  yum install bzip2 // 该命令安装bzip2小工具,用于tar -xjv .bz2文件解压
  wget http://cn2.php.net/distributions/php-7.1.0.tar.bz2
  tar -xjf php-7.1.0.tar.bz2// 解压
  cd php-7.1.0
  // 下面的命令将configure php with basic extension,并且为build做准备
  ./configure --help //列出所有你可以选择的extension功能开关
  "
# ./configure --help
  `configure' configures this package to adapt to many kinds of systems.
  Usage: ./configure ... ...
  To assign environment variables (e.g., CC, CFLAGS...), specify them as
  VAR=VALUE.See below for descriptions of some of the useful variables.
  Defaults for the options are specified in brackets.
  Configuration:
  -h, --help            display this help and exit
  --help=short      display options specific to this package
  --help=recursive    display the short help of all the included packages
  -V, --version         display version information and exit
  -q, --quiet, --silent   do not print `checking ...' messages
  --cache-file=FILE   cache test results in FILE
  -C, --config-cache      alias for `--cache-file=config.cache'
  -n, --no-create         do not create output files
  --srcdir=DIR      find the sources in DIR
  Installation directories:
  --prefix=PREFIX         install architecture-independent files in PREFIX

  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX

  By default, `make install' will install all the files in
  `/usr/local/bin', `/usr/local/lib' etc.You can specify
  an installation prefix other than `/usr/local' using `--prefix',
  for instance `--prefix=$HOME'.
  For better control, use the options below.
  Fine tuning of the installation directories:
  --bindir=DIR            user executables
  --sbindir=DIR         system admin executables
  --libexecdir=DIR      program executables
  --sysconfdir=DIR      read-only single-machine data
  --sharedstatedir=DIR    modifiable architecture-independent data
  --localstatedir=DIR   modifiable single-machine data
  --libdir=DIR            object code libraries
  --includedir=DIR      C header files
  --oldincludedir=DIR   C header files for non-gcc
  --datarootdir=DIR       read-only arch.-independent data root
  --datadir=DIR         read-only architecture-independent data
  --infodir=DIR         info documentation
  --localedir=DIR         locale-dependent data
  --mandir=DIR            man documentation
  --docdir=DIR            documentation root
  --htmldir=DIR         html documentation
  --dvidir=DIR            dvi documentation
  --pdfdir=DIR            pdf documentation
  --psdir=DIR             ps documentation
  System types:
  --build=BUILD   configure for building on BUILD
  --host=HOST       cross-compile to build programs to run on HOST
  --target=TARGET   configure for building compilers for TARGET
  Optional Features and Packages:
  --disable-option-checkingignore unrecognized --enable/--with options
  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
  --enable-FEATURE[=ARG]include FEATURE
  --with-PACKAGE[=ARG]    use PACKAGE
  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
  --with-libdir=NAME      Look for libraries in .../NAME rather than .../lib
  --disable-rpath         Disable passing additional runtime library
  search paths
  --enable-re2c-cgoto   Enable -g flag to re2c to use computed goto gcc extension
  --disable-gcc-global-regs
  whether to enable GCC global register variables
  SAPI modules:
  --with-apxs2=FILE       Build shared Apache 2.0 Handler module. FILE is the optional
  pathname to the Apache apxs tool apxs
  --disable-cli         Disable building CLI version of PHP
  (this forces --without-pear)
  --enable-embed=TYPE   EXPERIMENTAL: Enable building of embedded SAPI library
  TYPE is either 'shared' or 'static'. TYPE=shared
  --enable-fpm            Enable building of the fpm SAPI executable
  --with-fpm-user=USER    Set the user for php-fpm to run as. (default: nobody)
  --with-fpm-group=GRP    Set the group for php-fpm to run as. For a system user, this
  should usually be set to match the fpm username (default: nobody)
  --with-fpm-systemd      Activate systemd integration
  --with-fpm-acl          Use POSIX Access Control Lists
  --with-litespeed      Build PHP as litespeed module
  --enable-phpdbg            Build phpdbg
  --enable-phpdbg-webhelperBuild phpdbg web SAPI support
  --enable-phpdbg-debug      Build phpdbg in debug mode
  --disable-cgi         Disable building CGI version of PHP
  General settings:
  --enable-gcov         Enable GCOV code coverage (requires LTP) - FOR DEVELOPERS ONLY!!
  --enable-debug          Compile with debugging symbols
  --with-layout=TYPE      Set how installed files will be laid out.Type can
  be either PHP or GNU
  --with-config-file-path=PATH
  Set the path in which to look for php.ini
  --with-config-file-scan-dir=PATH
  Set the path where to scan for configuration files
  --enable-sigchild       Enable PHP's own SIGCHLD handler
  --enable-libgcc         Enable explicitly linking against libgcc
  --disable-short-tags    Disable the short-form <? start tag by default
  --enable-dmalloc      Enable dmalloc
  --disable-ipv6          Disable IPv6 support
  --enable-dtrace         Enable DTrace support

  --enable-fd-setsize   Set>  Extensions:
  --with-EXTENSION=shared[,PATH]
  NOTE: Not all extensions can be build as 'shared'.
  Example: --with-foobar=shared,/usr/local/foobar/
  o Builds the foobar extension as shared extension.
  o foobar package install prefix is /usr/local/foobar/
  --disable-all         Disable all extensions which are enabled by default
  --disable-libxml      Disable LIBXML support
  --with-libxml-dir=DIR   LIBXML: libxml2 install prefix
  --with-openssl=DIR      Include OpenSSL support (requires OpenSSL >= 1.0.1)
  --with-kerberos=DIR   OPENSSL: Include Kerberos support
  --with-system-ciphers   OPENSSL: Use system default cipher list instead of hardcoded value
  --with-pcre-regex=DIR   Include Perl Compatible Regular Expressions support.
  DIR is the PCRE install prefix BUNDLED
  --with-pcre-jit         Enable PCRE JIT functionality
  --without-sqlite3=DIR   Do not include SQLite3 support. DIR is the prefix to
  SQLite3 installation directory.
  --with-zlib=DIR         Include ZLIB support (requires zlib >= 1.0.9)
  --with-zlib-dir=<DIR>   Define the location of zlib install directory
  --enable-bcmath         Enable bc style precision math functions
  --with-bz2=DIR          Include BZip2 support
  --enable-calendar       Enable support for calendar conversion
  --disable-ctype         Disable ctype functions
  --with-curl=DIR         Include cURL support
  --enable-dba            Build DBA with bundled modules. To build shared DBA
  extension use --enable-dba=shared
  --with-qdbm=DIR         DBA: QDBM support
  --with-gdbm=DIR         DBA: GDBM support
  --with-ndbm=DIR         DBA: NDBM support
  --with-db4=DIR          DBA: Oracle Berkeley DB 4.x or 5.x support
  --with-db3=DIR          DBA: Oracle Berkeley DB 3.x support
  --with-db2=DIR          DBA: Oracle Berkeley DB 2.x support
  --with-db1=DIR          DBA: Oracle Berkeley DB 1.x support/emulation
  --with-dbm=DIR          DBA: DBM support
  --with-tcadb=DIR      DBA: Tokyo Cabinet abstract DB support
  --without-cdb=DIR       DBA: CDB support (bundled)
  --disable-inifile       DBA: INI support (bundled)
  --disable-flatfile      DBA: FlatFile support (bundled)
  --disable-dom         Disable DOM support
  --with-libxml-dir=DIR   DOM: libxml2 install prefix
  --with-enchant=DIR      Include enchant support.
  GNU Aspell version 1.1.3 or higher required.
  --enable-exif         Enable EXIF (metadata from images) support
  --disable-fileinfo      Disable fileinfo support
  --disable-filter      Disable input filter support
  --with-pcre-dir         FILTER: pcre install prefix
  --enable-ftp            Enable FTP support
  --with-openssl-dir=DIRFTP: openssl install prefix
  --with-gd=DIR         Include GD support.DIR is the GD library base
  install directory BUNDLED
  --with-webp-dir=DIR      GD: Set the path to libwebp install prefix
  --with-jpeg-dir=DIR   GD: Set the path to libjpeg install prefix
  --with-png-dir=DIR      GD: Set the path to libpng install prefix
  --with-zlib-dir=DIR   GD: Set the path to libz install prefix
  --with-xpm-dir=DIR      GD: Set the path to libXpm install prefix
  --with-freetype-dir=DIR GD: Set the path to FreeType 2 install prefix
  --enable-gd-native-ttfGD: Enable TrueType string function
  --enable-gd-jis-conv    GD: Enable JIS-mapped Japanese font support
  --with-gettext=DIR      Include GNU gettext support
  --with-gmp=DIR          Include GNU MP support
  --with-mhash=DIR      Include mhash support
  --disable-hash          Disable hash support
  --without-iconv=DIR   Exclude iconv support
  --with-imap=DIR         Include IMAP support. DIR is the c-client install prefix
  --with-kerberos=DIR   IMAP: Include Kerberos support. DIR is the Kerberos install prefix
  --with-imap-ssl=DIR   IMAP: Include SSL support. DIR is the OpenSSL install prefix
  --with-interbase=DIR    Include Firebird support.DIR is the Firebird base
  install directory /opt/firebird
  --enable-intl         Enable internationalization support
  --with-icu-dir=DIR      Specify where ICU libraries and headers can be found
  --disable-json          Disable JavaScript Object Serialization support
  --with-ldap=DIR         Include LDAP support
  --with-ldap-sasl=DIR    LDAP: Include Cyrus SASL support
  --enable-mbstring       Enable multibyte string support
  --disable-mbregex       MBSTRING: Disable multibyte regex support
  --disable-mbregex-backtrack
  MBSTRING: Disable multibyte regex backtrack check
  --with-libmbfl=DIR      MBSTRING: Use external libmbfl.DIR is the libmbfl base
  install directory BUNDLED
  --with-onig=DIR         MBSTRING: Use external oniguruma. DIR is the oniguruma install prefix.
  If DIR is not set, the bundled oniguruma will be used
  --with-mcrypt=DIR       Include mcrypt support
  --with-mysqli=FILE      Include MySQLi support.FILE is the path
  to mysql_config.If no value or mysqlnd is passed
  as FILE, the MySQL native driver will be used
  --enable-embedded-mysqli
  MYSQLi: Enable embedded support
  Note: Does not work with MySQL native driver!
  --with-mysql-sock=SOCKPATH
  MySQLi/PDO_MYSQL: Location of the MySQL unix socket pointer.
  If unspecified, the default locations are searched
  --with-oci8=DIR         Include Oracle Database OCI8 support. DIR defaults to $ORACLE_HOME.
  Use --with-oci8=instantclient,/path/to/instant/client/lib
  to use an Oracle Instant Client installation
  --with-odbcver=HEX      Force support for the passed ODBC version. A hex number is expected, default 0x0350.
  Use the special value of 0 to prevent an explicit ODBCVER to be defined.
  --with-adabas=DIR       Include Adabas D support /usr/local
  --with-sapdb=DIR      Include SAP DB support /usr/local
  --with-solid=DIR      Include Solid support /usr/local/solid
  --with-ibm-db2=DIR      Include IBM DB2 support /home/db2inst1/sqllib
  --with-ODBCRouter=DIR   Include ODBCRouter.com support /usr
  --with-empress=DIR      Include Empress support \$EMPRESSPATH
  (Empress Version >= 8.60 required)
  --with-empress-bcs=DIR
  Include Empress Local Access support \$EMPRESSPATH
  (Empress Version >= 8.60 required)
  --with-birdstep=DIR   Include Birdstep support /usr/local/birdstep
  --with-custom-odbc=DIRInclude user defined ODBC support. DIR is ODBC install base
  directory /usr/local. Make sure to define CUSTOM_ODBC_LIBS and
  have some odbc.h in your include dirs. f.e. you should define
  following for Sybase SQL Anywhere 5.5.00 on QNX, prior to
  running this configure script:
  CPPFLAGS=\"-DODBC_QNX -DSQLANY_BUG\"
  LDFLAGS=-lunix
  CUSTOM_ODBC_LIBS=\"-ldblib -lodbc\"
  --with-iodbc=DIR      Include iODBC support /usr/local
  --with-esoob=DIR      Include Easysoft OOB support /usr/local/easysoft/oob/client
  --with-unixODBC=DIR   Include unixODBC support /usr/local
  --with-dbmaker=DIR      Include DBMaker support
  --disable-opcache       Disable Zend OPcache support
  --disable-opcache-fileDisable file based caching
  --disable-huge-code-pages
  Disable copying PHP CODE pages into HUGE PAGES
  --enable-pcntl          Enable pcntl support (CLI/CGI only)
  --disable-pdo         Disable PHP Data Objects support
  --with-pdo-dblib=DIR    PDO: DBLIB-DB support.DIR is the FreeTDS home directory
  --with-pdo-firebird=DIR PDO: Firebird support.DIR is the Firebird base
  install directory /opt/firebird
  --with-pdo-mysql=DIR    PDO: MySQL support. DIR is the MySQL base directory
  If no value or mysqlnd is passed as DIR, the
  MySQL native driver will be used
  --with-zlib-dir=DIR   PDO_MySQL: Set the path to libz install prefix
  --with-pdo-oci=DIR      PDO: Oracle OCI support. DIR defaults to \$ORACLE_HOME.
  Use --with-pdo-oci=instantclient,prefix,version
  for an Oracle Instant Client SDK.
  For example on Linux with 11.2 RPMs use:
  --with-pdo-oci=instantclient,/usr,11.2
  With 10.2 RPMs use:
  --with-pdo-oci=instantclient,/usr,10.2.0.4
  --with-pdo-odbc=flavour,dir
  PDO: Support for 'flavour' ODBC driver.
  include and lib dirs are looked for under 'dir'.
  'flavour' can be one of:ibm-db2, iODBC, unixODBC, generic
  If ',dir' part is omitted, default for the flavour
  you have selected will be used. e.g.:
  --with-pdo-odbc=unixODBC
  will check for unixODBC under /usr/local. You may attempt
  to use an otherwise unsupported driver using the \"generic\"
  flavour.The syntax for generic ODBC support is:
  --with-pdo-odbc=generic,dir,libname,ldflags,cflags
  When built as 'shared' the extension filename is always pdo_odbc.so
  --with-pdo-pgsql=DIR    PDO: PostgreSQL support.DIR is the PostgreSQL base
  install directory or the path to pg_config
  --without-pdo-sqlite=DIR
  PDO: sqlite 3 support.DIR is the sqlite base
  install directory BUNDLED
  --with-pgsql=DIR      Include PostgreSQL support.DIR is the PostgreSQL
  base install directory or the path to pg_config
  --disable-phar          Disable phar support
  --disable-posix         Disable POSIX-like functions
  --with-pspell=DIR       Include PSPELL support.
  GNU Aspell version 0.50.0 or higher required
  --with-libedit=DIR      Include libedit readline replacement (CLI/CGI only)
  --with-readline=DIR   Include readline support (CLI/CGI only)
  --with-recode=DIR       Include recode support
  --disable-session       Disable session support
  --with-mm=DIR         SESSION: Include mm support for session storage
  --enable-shmop          Enable shmop support
  --disable-simplexml   Disable SimpleXML support
  --with-libxml-dir=DIR   SimpleXML: libxml2 install prefix
  --with-snmp=DIR         Include SNMP support
  --with-openssl-dir=DIRSNMP: openssl install prefix
  --enable-soap         Enable SOAP support
  --with-libxml-dir=DIR   SOAP: libxml2 install prefix
  --enable-sockets      Enable sockets support
  --enable-sysvmsg      Enable sysvmsg support
  --enable-sysvsem      Enable System V semaphore support
  --enable-sysvshm      Enable the System V shared memory support
  --with-tidy=DIR         Include TIDY support
  --disable-tokenizer   Disable tokenizer support
  --enable-wddx         Enable WDDX support
  --with-libxml-dir=DIR   WDDX: libxml2 install prefix
  --with-libexpat-dir=DIR WDDX: libexpat dir for XMLRPC-EPI (deprecated)
  --disable-xml         Disable XML support
  --with-libxml-dir=DIR   XML: libxml2 install prefix
  --with-libexpat-dir=DIR XML: libexpat install prefix (deprecated)
  --disable-xmlreader   Disable XMLReader support
  --with-libxml-dir=DIR   XMLReader: libxml2 install prefix
  --with-xmlrpc=DIR       Include XMLRPC-EPI support
  --with-libxml-dir=DIR   XMLRPC-EPI: libxml2 install prefix
  --with-libexpat-dir=DIR XMLRPC-EPI: libexpat dir for XMLRPC-EPI (deprecated)
  --with-iconv-dir=DIR    XMLRPC-EPI: iconv dir for XMLRPC-EPI
  --disable-xmlwriter   Disable XMLWriter support
  --with-libxml-dir=DIR   XMLWriter: libxml2 install prefix
  --with-xsl=DIR          Include XSL support.DIR is the libxslt base
  install directory (libxslt >= 1.1.0 required)
  --enable-zip            Include Zip read/write support
  --with-zlib-dir=DIR   ZIP: Set the path to libz install prefix
  --with-pcre-dir         ZIP: pcre install prefix
  --with-libzip=DIR       ZIP: use libzip
  --enable-mysqlnd      Enable mysqlnd explicitly, will be done implicitly
  when required by other extensions
  --disable-mysqlnd-compression-support
  Disable support for the MySQL compressed protocol in mysqlnd
  --with-zlib-dir=DIR   mysqlnd: Set the path to libz install prefix
  PEAR:
  --with-pear=DIR         Install PEAR in DIR
  --without-pear          Do not install PEAR
  Zend:
  --enable-maintainer-zts Enable thread safety - for code maintainers only!!
  --disable-inline-optimization
  If building zend_execute.lo fails, try this switch
  --disable-zend-signalswhether to enable zend signal handling
  TSRM:
  --with-tsrm-pth=pth-config
  Use GNU Pth
  --with-tsrm-st          Use SGI's State Threads
  --with-tsrm-pthreads    Use POSIX threads (default)
  Libtool:
  --enable-shared=PKGS    Build shared libraries default=yes
  --enable-static=PKGS    Build static libraries default=yes
  --enable-fast-install=PKGS
  Optimize for fast installation default=yes
  --with-gnu-ld         Assume the C compiler uses GNU ld default=no
  --disable-libtool-lockAvoid locking (might break parallel builds)
  --with-pic            Try to use only PIC/non-PIC objects default=use both
  --with-tags=TAGS      Include additional configurations automatic
  Some influential environment variables:
  CC          C compiler command
  CFLAGS      C compiler flags
  LDFLAGS   linker flags, e.g. -L<lib dir> if you have libraries in a
  nonstandard directory <lib dir>
  LIBS      libraries to pass to the linker, e.g. -l<library>
  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
  you have headers in a nonstandard directory <include dir>
  CPP         C preprocessor
  YACC      The `Yet Another Compiler Compiler' implementation to use.
  Defaults to the first program found out of: `bison -y', `byacc',
  `yacc'.
  YFLAGS      The list of arguments that will be passed by default to $YACC.
  This script will default YFLAGS to the empty string to avoid a
  default value of `-d' given by some make applications.
  CXX         C++ compiler command
  CXXFLAGS    C++ compiler flags
  CXXCPP      C++ preprocessor
  Use these variables to override the choices made by `configure' or to help
  it to find libraries and programs with nonstandard names/locations.
  Report bugs to the package provider.
  "
  ./buildconf --force
  ./configure --prefix=/usr/local/php7 --with-config-file-path=/usr/local/php7/etc --with-config-file-scan-dir=/usr/local/php7/etc/conf.d --enable-bcmath --with-bz2 --with-curl --enable-filter --enable-fpm --with-gd --enable-gd-native-ttf --with-freetype-dir --with-jpeg-dir --with-png-dir --enable-intl --enable-mbstring --with-mcrypt --enable-mysqlnd --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pdo-sqlite --disable-phpdbg --disable-phpdbg-webhelper --enable-opcache --with-openssl --enable-simplexml --with-sqlite3 --enable-xmlreader --enable-xmlwriter --enable-zip --with-zlib --with-apxs2
  make// 上面的命令完成后,直接执行make编译php过程,大概需要5分钟
  make install // 将make出来的php安装到/uslr/local/php7目录中
  echo "export PATH=/usr/local/php7/bin:$PATH" >> /etc/bashrc
  php --version // 显示正确的php版本已经编译出来了
  cp ./php.ini-development /usr/local/php7/etc/php.ini
  vi /etc/httpd/conf/httpd.conf
  增加以下:
  //PHPIniDir "/etc/php7/php.ini"   (注意必须在httpd.conf中的loadModule php5_module之前 )
  LoadModule php7_module      /usr/lib64/httpd/modules/libphp7.so
  <FilesMatch \.php$>
  SetHandler application/x-httpd-php
  </FilesMatch>
  php -i | grep "Loaded Configuration File"// 可以检查你的php.ini文件到底有没有加载,加载的是哪一个文件
  moddeflate.conf 文件放到 /etc/httpd/conf.d文件目录中由apache加载用于压缩js,css,html文件
  getent group // 获取centos系统中的group
  getent passwd //获取centos系统的用户A
  9. copy mysql, html
  tar -cjf mysql.tar.bz2 /assets/mysql
  scp root@xxx:/assets/mysql.tar.bz2 .
  tar -xjf mysql.tar.bz2
  vi /etc/my.conf
  // my.conf内容参考
  "

  #
  # Remove leading # and set to the amount of RAM for the most important data
  # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
  # innodb_buffer_pool_size = 128M
  #
  # Remove leading # to turn on a very important data integrity option: logging
  # changes to the binary log between backups.
  # log_bin
  #
  # Remove leading # to set options mainly useful for reporting servers.
  # The server defaults are faster for transactions and fast SELECTs.

  # Adjust>  # join_buffer_size = 128M
  # sort_buffer_size = 2M
  # read_rnd_buffer_size = 2M
  datadir=/assets/mysql
  socket=/assets/mysql/mysql.sock
  # Disabling symbolic-links is recommended to prevent assorted security risks
  symbolic-links=0
  # Recommended in standard MySQL setup
  sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

  log-error=/assets/mysql/mysqld.log
  pid-file=/assets/mysql/mysqld.pid
  "
  service mysqld restart // 重新启动mysql
  10. laravel redis 安装:
  wget http://download.redis.io/releases/redis-3.2.6.tar.gz
  tar xvf redis-3.2.6.tar.gz
  cd redis-3.2.6
  make && make install;
  cp redis.conf /etc/redis
  更改redis.conf中的daemonize yes
  redis-server /etc/redis/redis.conf // 测试看看是否能够顺利启动
  // 在/etc/init.d/redis 文件中加入以下内容
  "
  #!/bin/sh
  # chkconfig:   2345 90 10
  # description:Redis is a persistent key-value database
  # redis    Startup script for redis processes
  # processname: redis
  redis_path="/usr/local/bin/redis-server"
  redis_conf="/etc/redis/redis.conf"
  redis_pid="/var/run/redis.pid"
  # Source function library.
  . /etc/rc.d/init.d/functions
[ -x $redis_path ] || exit 0
  RETVAL=0
  prog="redis"
  # Start daemons.
  start() {
  if [ -e $redis_pid -a ! -z $redis_pid ];then
  echo $prog" already running...."
  exit 1
  fi
  echo -n $"Starting $prog "
  # Single instance for all caches
  $redis_path $redis_conf
  RETVAL=$?
[ $RETVAL -eq 0 ] && {
  touch /var/lock/subsys/$prog
  success $"$prog"
  }
  echo
  return $RETVAL
  }
  # Stop daemons.
  stop() {
  echo -n $"Stopping $prog "
  killproc -d 10 $redis_path
  echo
[ $RETVAL = 0 ] && rm -f $redis_pid /var/lock/subsys/$prog
  RETVAL=$?
  return $RETVAL
  }
  # See how we were called.
  case "$1" in
  start)
  start
  ;;
  stop)
  stop
  ;;
  status)
  status $prog
  RETVAL=$?
  ;;
  restart)
  stop
  start
  ;;
  condrestart)
  if test "x`pidof redis`" != x; then
  stop
  start
  fi
  ;;
  *)
  echo $"Usage: $0 {start|stop|status|restart|condrestart}"
  exit 1
  esac
  exit $RETVAL
  "
  chkconfig --add redis// 开机自动启动, centos7以后应该考虑 systemd的模式启动 systemctl
  chkconfig --level 2345 redis on
  service redis restart
  11. 通过webhook一键push自动部署(包含代码和数据库更新)
  chmod u+w /etc/sudoers ;
  echo "apache ALL=NOPASSWD:/usr/local/git/bin/git pull" >> /etc/sudoers
  echo "apache ALL=NOPASSWD:/usr/local/zend/bin/php artisan cache:clear" >> /etc/sudoers
  再注释掉Defaults requiretty这行,否则会要求有tty才能运行!(TODO: 写shell实现自动化)
  chmod u-w /etc/sudoers
  // 在测试过程中,发现dd ("finished") 报错误:不知道是不是和php7.1升级有关系,下面是错误内容:
  "
  12. server benchmark testing: https://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench
  yum install sysbench
  sysbench --test=cpu --cpu-max-prime=20000 run// cpu benchmark test
  // file io benchamrktest
  sysbench --test=fileio --file-total-size=20G prepare
  sysbench --test=fileio --file-total-size=20G --file-test-mode=rndrw --init-rng=on --max-time=300 --max-requests=0 run
  // mysql benchmark:
  sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword prepare
  sysbench --test=oltp --oltp-table-size=1000000 --mysql-db=test --mysql-user=root --mysql-password=yourrootsqlpassword --max-time=60 --oltp-read-only=on --max-requests=0 --num-threads=8 run
页: [1]
查看完整版本: centos 7.2 Apache+mysql+php step by step备忘