1.安装依赖包
yum -y install libxml2 libxml2-devel openssl openssl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel yum -y install bzip2 bzip2-devel libcurl libcurl-devel gmp gmp-devel readline readline-devel libxslt libxslt-devel
2. 安装libmcrypt
-> wget http://sourceforge.net/projects/mcrypt/files/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz -> tar -zxvf libmcrypt-2.5.8.tar.gz -> cd libmcrypt-2.5.8 -> ./configure -> make && make install
3. 安装PHP7
-> wget http://cn2.php.net/get/php-7.0.2.tar.gz 下载 php-7.0.2.tar.gz -> tar -zxvf php-7.0.2.tar.gz 解压缩 -> cd php-7.0.2 进入目录 -> ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-soap --with-libxml-dir --with-xmlrpc --with-openssl --with-openssl-dir --with-mcrypt --with-mhash --with-pcre-regex --with-pcre-dir --with-sqlite3 --with-zlib --with-zlib-dir --enable-bcmath --with-iconv --with-bz2 --enable-calendar --with-curl --with-cdb --enable-dom --enable-exif --enable-fileinfo --enable-filter --enable-ftp --with-gd --enable-gd-native-ttf --enable-gd-jis-conv --with-jpeg-dir --with-png-dir --with-freetype-dir --with-gettext --with-gmp --enable-json --enable-mbstring --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd --enable-mysqlnd-compression-support --with-pdo-mysql=mysqlnd --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-xsl --enable-zip --with-pear --enable-opcache
注: --prefix=/usr/local/php 指定 php 安装目录 --with-config-file-path=/etc 设置php.ini的搜索路径。默认为PREFIX/lib --enable-fpm 打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序 --with-fpm-user=www --with-fpm-group=www --enable-inline-optimization 优化线程 --disable-debug 关闭调试模式 --disable-rpath 关闭额外的运行库文件 --enable-shared 编译共享库,默认yes --enable-soap soap模块 --with-libxml-dir 打开libxml2库的支持 --with-xmlrpc 打开xml-rpc的c语言 --with-openssl openssl的支持,加密传输时用到的 --with-mcrypt mcrypt算法(函数库需要安装) --with-mhash mhash算法(函数库需要安装) --with-pcre-regex 定 PCRE 包含文件和库文件路径 --with-sqlite3 --with-zlib 打开zlib库的支持 --enable-bcmath 打开图片大小调整,用到zabbix监控的时候用到了这个模块 --with-iconv --with-bz2 打开对bz2文件的支持 --enable-calendar 打开日历扩展功能 --with-curl 打开curl浏览工具的支持 --with-cdb --enable-dom --enable-exif 图片的元数据支持 --enable-fileinfo --enable-filter --with-pcre-dir perl的正则库安装位置 --enable-ftp 打开ftp的支持 --with-gd 打开gd库的支持 --with-openssl-dir --with-jpeg-dir 打开对jpeg图片的支持 --with-png-dir 打开对png图片的支持 --with-zlib-dir 打开zlib库的支持 --with-freetype-dir 打开对freetype字体库的支持 --enable-gd-native-ttf 支持TrueType字符串函数库 --enable-gd-jis-conv --with-gettext 打开gnu 的gettext 支持,编码库用到 --with-gmp --enable-json --enable-mbstring 多字节,字符串的支持 --enable-mbregex --enable-mbregex-backtrack --with-libmbfl --with-onig --enable-pdo --with-mysqli=mysqlnd mysql安装目录,对mysql的支持 --with-pdo-mysql=mysqlnd --with-pdo-sqlite --with-readline --enable-session --enable-shmop --enable-simplexml --enable-sockets 打开 sockets 支持 --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --with-xsl 打开XSLT文件支持,扩展了libXML2库 ,需要libxslt软件 --enable-zip 打开对zip的支持 --enable-mysqlnd-compression-support --with-pear 打开pear命令的支持,PHP扩展用的 --enable-opcache
-> 报错解决
报错1-> configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no
解决1-> 编辑 /etc/ld.so.conf 加入/usr/local/lib,在执行ldconfig
-> make -> make install -> 配置 -> cp php.ini-development /etc/php.ini 复制配置文件 php.ini-development -> cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf -> vim /usr/local/php/etc/php-fpm.conf pid = /var/run/php-fpm.pid 去掉前面的分号 error_log = /data/logs/php-fpm/php-fpm.log 去掉前面的分号 -> cd /usr/local/php/etc/php-fpm.d -> cp www.conf.default www.conf 根据需求配置 -> /usr/local/php/sbin/php-fpm 启动php-fpm -> kill -INT `cat /var/run/php-fpm.pid` 关闭php-fpm /usr/local/php/var/run/php-fpm.pid -> kill -USR2 `cat /var/run/php-fpm.pid` 重启php-fpm
4. 配置域名
-> cd /usr/local/nginx/conf/vhost/ -> vim www.test.com.conf upstream testphpfpm { server 127.0.0.1:9000; } log_format testaccess '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" $http_x_forwarded_for'; server { listen 80; server_name xxx.xxx.xxx; index index.shtml index.html index.htm; root /data/www/project; ssi on; ssi_silent_errors on; ssi_types text/shtml; #error_page 404 = http://xxx.xxx.xxx; location ~ .php$ { alias /data/www/project; fastcgi_pass testphpfpm; fastcgi_index index.php; include fastcgi.conf; }
/*下面两个IF 是兼容 CI框架 否则CI框架项目无法使用*/
if ($request_uri ~* "^/(static|data|install|.)/.*"){ set $rule '1'; } if ($rule !~ '1'){ rewrite ^/(.+)$ /index.php?/$1 last; } access_log /data/logs/nginx/xxx.xxx.xxx.log testaccess; } -> :wq 保存退出
5. 分割日志
-> 创建脚本目录 -> cd /data -> mkdir scripts -> cd scripts -> vim nginx_log_splid.sh #!/bin/sh LOGDIR ="/data/logs/nginx" FILEDAY = `date -d "-1 days" +%Y%m%d` /bin/mv $nginx_log_dir/www.test.com.log $LOGDIR /www.test.com.$FILEDAY.log kill -USR1 `cat /usr/local/nginx/logs/nginx.pid` -> :wq -> crontab -e 添加一条定时任务 0 0 * * * /data/scripts/nginx_log_splid.sh 每晚0点执行nginx_log_splid.sh文件
测试 /usr/local/nginx/sbin/nginx -t
提示 nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
即为配置成功。
重启 /usr/local/nginx/sbin/nginx -s reload
6. 主机访问虚拟机项目只需要完成下面配置 ^_^
在/usr/local/nginx/conf/vhost目录配置后,在主机的hosts里,将域名指向虚拟机的IP即可
实践
mkdir data/www/project
在project新建一个CI框架项目
www.test.com 直接访问出现CI欢迎界面 成功!