安装常用依赖库
# yum install -y gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd gd-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel openssl openssl-devel libtool libtool-devel libtool-ltdl-devel c-ares libaio
安装iconv
# tar -zxf libiconv*.tar.gz
# cd libiconv*
# ./configure --prefix=/usr/local/
# make && make install
安装bison
# tar -zxf bison*.tar.gz
# cd bison*
# ./configure
# make && make install
安装mhash
# tar -jxf mhash*.tar.bz2
# cd mhash*
# ./configure
# make && make install
安装mcrypt
# tar -zxf libmcrypt*.tar.gz
# cd libmcrypt*
# ./configure
# make && make install
# cd libltdl/
# ./configure --enable-ltdl-install
# make && make install
# tar -zxf mcrypt*tar.gz
# cd mcrypt*
# export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
# ./configure
# make && make install
安装Nginx
安装 pcre
# tar -zxf pcre*.tar.gz
# cd pcre*
# ./configure
# make && make install
安装nginx
# useradd www -s /sbin/nologin
# tar -zxf nginx*.tar.gz
# cd nginx*
# ./configure --prefix=${nginxdir} --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module
# make && make install
//启动
/usr/local/nginx/sbin/nginx
//测试
http://IP
安装Mysql
安装cmake
# tar -zxf cmake-2.8*.tar.gz
# cd cmake-2.8*
# ./configure
# gmake
# make && make install
安装Mysql
# tar -zxf mysql-boost-5.7*.tar.gz
# cd mysql-5.7*
# cmake ./ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DWITH_BOOST=boost
# make && make install
//拷贝配置文件和启动脚本
# cp support-files/my-innodb-heavy-4G.cnf /etc/my.cnf
# cp support-files/mysql.server /etc/init.d/mysqld
# chmod +x /etc/init.d/mysqld
//配置mysql相关目录和配置文件
# useradd mysql -s /sbin/nologin
# mkdir -p /data/mysql/data
# mkdir -p /data/mysql/binlog
# mkdir -p /data/mysql/log
# chown mysql.mysql /data/mysql -R
# vim /etc/my.cnf
在[mysqld]下加入
pid-file = /data/mysql/mysql.pid
character_set_server=utf8
basedir = /usr/local/mysql
datadir = /data/mysql/data
#错误日志
log-error = /data/mysql/log/error.log
#查询日志,一般不开启
#general-log=1
#general-log-file=/data/mysql/log/mysql.log
#慢查询日志
slow_query_log = ON
long_query_time = 2
slow_query_log_file = /data/mysql/log/slow.log
#binlog
log-bin=/data/mysql/binlog/mysql-binlog
binlog_format=mixed
初始化并启动(以下命令是5.7版本,5.7之前版本为./scripts/mysql_install_db --user=mysql后面参数一样)
# /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/data/mysql/data/ --basedir=/usr/local/mysql
//启动命令
#/etc/init.d/mysqld start
安装PHP
# tar -zxf php-7.1*.tar.gz
# cd php-7.1*
# ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gd --with-freetype-dir --with-jpeg-dir --with-png-dir --with-libxml-dir --with-iconv=/usr/local/ --with-zlib --with-bz2 --with-mcrypt --with-mhash --with-openssl --with-curl --with-pear --with-gettext --enable-mbstring --enable-gd-native-ttf --enable-zip --enable-ftp --enable-sockets --enable-calendar --enable-bcmath --enable-exif --enable-shmop --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-debug
# make && make install
拷贝PHP启动脚本和配置文件
# cp sapi/fpm/init.d.php-fpm.in /etc/init.d/php-fpm
修改启动脚本中php的安装目录
# chmod +x /etc/init.d/php-fpm
# cp php.ini-production /usr/local/php/etc/php.ini
# cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
# cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
启动PHP-FPM
/etc/init.d/php-fpm start
配置Nginx虚拟主机(php测试页)
//修改nginx配置
# vim /usr/local/nginx/conf/nginx.conf
加入
include vhosts/*.conf;
#mkdir /usr/local/nginx/conf/vhosts
//配置php测试页的虚拟主机
# vim /usr/local/nginx/conf/vhosts/index.conf
server {
listen 8008;
server_name localhost;
index index.php index.html;
root /data/htdocs/test;
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ {
expires 30d;
}
location ~ .*\.(js|css)?$ {
expires 1h;
}
access_log /data/logs/www/index-test_access.log www;
error_log /data/logs/www/index-test_error.log;
}
//创建php测试页
# mkdir -p /data/htdocs/test
# mkdir -p /data/logs/www
# chown www.www /data/htdocs -R
# chown www.www /data/htdocs/www -R
vim /data/htdocs/test
#vim /usr/local/nginx/html/index.php
<?php
phpinfo();
?>
重启nginx,访问测试地址: http://IP:8008,出现如下界面表示php解析成功(下面是5.x的测试页,7.x的也差不多)
fpm启动报错解决方法
ALERT: [pool www] pm.min_spare_servers(0) must be a positivevalue
编辑php-fpm.conf找到pm.min_spare_servers去除;号,注意非注释内容pm.min_spare_servers
ALERT: [pool www] pm.max_spare_servers(0) must be a positivevalue
编辑php-fpm.conf找到pm.max_spare_servers去除;号,同样非注释内容pm.max_spare_servers
WARNING: [pool www] pm.start_servers is not set. It's been setto 20.
编辑php-fpm.conf找到pm.start_servers去除;号,同样非注释内容pm.start_servers
ERROR: bind() for address '127.0.0.1:9000' failed: Addressalready in use (98)
# netstat -ntlpps -ef|grep php查看进程,有N多进程
nobody 26152 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26153 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26154 26151 0 15:45 ? 00:00:00 php-fpm: pool www
nobody 26155 26151 0 15:45 ? 00:00:00 php-fpm: pool www
# netstat -ntlpps -ef|grep php查看进程,有N多进程
PS:
安装ZendGuardLoader(php5.x版本)
# tar -zxvfZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz
# cd ZendGuardLoader-php-5.3-linux-glibc23-x86_64
# mv ZendGuardLoader.so /usr/local/php/lib/php/extensions/
# vim /usr/local/php/etc/php.ini
[zend]
zend_optimizer.optimization_level=15
zend_extension=/usr/local/php/lib/php/extensions/ZendGuardLoader.so
安装eaccelerator(php5.x版本)
#tar -zxvf eaccelerator-eaccelerator-42067ac.tar.gz
#cd eaccelerator-eaccelerator-42067ac
#/usr/local/php/bin/phpize
#./configure --enable-eaccelerator=shared--with-php-config=/usr/local/php/bin/php-config
#make && make install
#vim /usr/local/php/etc/php.ini
[eaccelerator]
extension=/usr/local/php/lib/php/extensions/eaccelerator.so
eaccelerator.shm_size=64
eaccelerator.cache_dir=/tmp/eaccelerator
eaccelerator.enable=1
eaccelerator.optimizer=1
eaccelerator.check_mtime=1
eaccelerator.debug=0
eaccelerator.log_file=/var/log/eaccelerator.log
eaccelerator.filter=
eaccelerator.shm_max=0
eaccelerator.shm_ttl=0
eaccelerator.shm_prune_period=0
eaccelerator.shm_only=0