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 install gcc 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 release: 从2.4开始已经不需要这个NameVirtualHost directive了

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功能开关

"

[root@iZuf61xke8lva2rsqr9vp3Z php-7.1.0]# ./configure --help

`configure' configures this package to adapt to many kinds of systems.

Usage: ./configure [OPTION]... [VAR=VALUE]...

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 [disabled]

-C, --config-cache alias for `--cache-file=config.cache'

-n, --no-create do not create output files

--srcdir=DIR find the sources in DIR [configure dir or `..']

Installation directories:

--prefix=PREFIX install architecture-independent files in PREFIX

[/usr/local]

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

[PREFIX]

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 [EPREFIX/bin]

--sbindir=DIR system admin executables [EPREFIX/sbin]

--libexecdir=DIR program executables [EPREFIX/libexec]

--sysconfdir=DIR read-only single-machine data [PREFIX/etc]

--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]

--localstatedir=DIR modifiable single-machine data [PREFIX/var]

--libdir=DIR object code libraries [EPREFIX/lib]

--includedir=DIR C header files [PREFIX/include]

--oldincludedir=DIR C header files for non-gcc [/usr/include]

--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]

--datadir=DIR read-only architecture-independent data [DATAROOTDIR]

--infodir=DIR info documentation [DATAROOTDIR/info]

--localedir=DIR locale-dependent data [DATAROOTDIR/locale]

--mandir=DIR man documentation [DATAROOTDIR/man]

--docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]

--htmldir=DIR html documentation [DOCDIR]

--dvidir=DIR dvi documentation [DOCDIR]

--pdfdir=DIR pdf documentation [DOCDIR]

--psdir=DIR ps documentation [DOCDIR]

System types:

--build=BUILD configure for building on BUILD [guessed]

--host=HOST cross-compile to build programs to run on HOST [BUILD]

--target=TARGET configure for building compilers for TARGET [HOST]

Optional Features and Packages:

--disable-option-checking ignore unrecognized --enable/--with options

--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)

--enable-FEATURE[=ARG] include FEATURE [ARG=yes]

--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]

--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-webhelper Build 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 [PHP]

--with-config-file-path=PATH

Set the path in which to look for php.ini [PREFIX/lib]

--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 size of descriptor sets

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=DIR FTP: 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-ttf GD: 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=DIR Include 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-file Disable 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=DIR SNMP: 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 [PREFIX/lib/php]

--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-signals whether 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-lock Avoid 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内容参考

"

[mysqld]

#

# 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 sizes as needed, experiment to find the optimal values.

# 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

[mysqld_safe]

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_p

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