centos7.0 64位 nginx-1.9.7 apache-2.4.17 mysql-5.5.46 php5.5.30
安装准备默认所有软件都放在/tar/目录下,首先该当在根目录下创建/tar/文件夹。
在编译时报错

短缺C++编译器
# yum install gcc-c++
Nginx-1.9.7的安装pcre的安装(必须安装)先看系统中是否有如果没有则须要安装
安装nginx是会如下缺点,须要安装pcre-devel或禁用nginx的rewrite模块
Yum安装pcre-devel
参考实在弗成时利用
查询是否安装 pcre-devel
# rpm -qa pcre-devel
删除pcre-devel
# rpm -e --nodeps pcre-devel 不检讨依赖
安装pcre-devel
# yum -y install pcre-devel
Pcre的下载进入官方网站 http://www.pcre.org/
选择一个镜像站点下载
Pcre的安装
a、检讨是否安装了pcre
# rpm -qa pcre
b、备份必要的库文件
# cp /lib64/libpcre.so.0 /tar/ 如果是32位系统 # /lib/libpcre.so.0 /tar/
c、删除旧的pcre
# rpm -e --nodeps pcre 不检讨依赖
d、pcre的安装
# cd /tar/
# tar zxvf pcre-8.38.tar.gz
# cd pcre-8.38
# ./configure
# make && make install
zlib的安装紧张用于nginx安装gzip压缩网页的模块,如果不要可以在编译nginx 时加 --without-http_gzip_module,安装gd库的libpng时也须要此的支持。
在安装php的gd库libpng时也须要此包,否则会报如下缺点。
zlib的下载
打开官方网站
http://www.zlib.net/
找到下面的直接下载
zlib的安装
# cd /tar/
# tar zxvf zlib-1.2.8.tar.gz
# cd zlib-1.2.8
# ./configure
# make
# make install
Nginx-1.9.7的下载进入官方网址 http://nginx.org/,点击一个版本,进入下载页面
根据需求,点击下载的软件
Nginx-1.9.7的安装创建运行nginx的用户和组
# groupadd www
# useradd -r -g www www
安装nginx# cd /tar/
# tar zxvf nginx-1.9.7.tar.gz
# cd nginx-1.9.7
# ./configure \
--prefix=/usr/local/nginx \
--user=www \
--group=www \
--without-http_gzip_module
解释:
--prefix 安装目录
--user 用户
--group 用户组
--without-http_gzip_module 不安装gzip模块,默认会安装的如果不加的话会报错如下
如果报此缺点。如果须要安装此模块,可以用 # yum install -y zlib-devel 安装依赖包,也可以拜会 系统依赖包的安装。
编译成功后的提示
编译和安装
# make && make install
如果启动的时候报错如下
则
# ln -s /usr/local/lib/libpcre.so.1 /lib64
nginx的启动重启和停滞启动:/usr/local/nginx/sbin/nginx
重启:/usr/local/nginx/sbin/nginx -s reload
停滞:/usr/local/nginx/sbin/nginx -s stop
Nginx检讨配置文件是否精确# nginx -t
Nginx开机启动启动# echo /usr/local/nginx/sbin/nginx >> /etc/rc.local
重启后创造开机不能启动,由于/etc/rc.d/rc.local 没有实行的权限。
# chmod +x /etc/rc.d/rc.local
防火墙设置开启80端口访问
centos7默认的是用firewalld进行管理防火墙的。
添加80端口
# firewall-cmd --zone=public --add-port=80/tcp --permanent
--zone 浸染域
--add-port=80/tcp 添加端口,格式为:端口/通讯协议
--permanent 永久生效,没有此参数重启后失落效
如果报错可能是防火墙没有启动,启动、停滞、重启的方法如下
启动:# systemctl start firewalld
重启:# systemctl reload firewalld
停滞:# systemctl stop firewalld
禁用:# systemctl disable firewalld
查看状态:# systemctl status firewalld 或者 firewall-cmd --state
重新加载80端口
# firewall-cmd --reload
Apache-2.4.17的安装APR的安装如果没有安装apr,在安装apache时会报如下缺点。
APR(Apache portable Run-time libraries,Apache可移植运行库)的目的如其名称一样,紧张为上层的运用程序供应一个可以超过多操作系统平台利用的底层支持接口库。
APR的下载
打开官方网站
http://apr.apache.org/
选择镜像下载
选择源码包下载
APR的安装
# tar zxvf apr-1.5.2.tar.gz
# cd apr-1.5.2
# ./configure
# make
# make install
APR-util的安装apr-util和apr都是为上层运用供应的运行库。如果没有安装它,在安装apache是会报如下缺点。
APR-util的下载
打开官方网站
http://apr.apache.org/
选择镜像下载
直接下载apr-util
APR-util的安装
# tar zxvf apr-util-1.5.4.tar.gz
# cd apr-util-1.5.4
# ./configure --with-apr=/usr/local/apr/
# make
# make install
Pcre的安装见nginx的安装下的pcre的安装
Apache的下载打开官方网站
http://www.apache.org/
点击download
选择一个镜像站点下载,选择下载httpd
下载一个版本
Apache的安装
# tar zxvf httpd-2.4.17.tar.gz
# cd httpd-2.4.17
# ./configure \
--prefix=/usr/local/apache \
--enable-module=rewrite
参数解释:
--prefix=/usr/local/apache 安装路径
--enable-module=rewrite 启用伪静态URL重写
# make
# make install
启动时有可能会报,如下缺点。则须要修正apahce配置文件。
# vi /usr/local/apache/conf/httpd.conf
去掉ServerName的注释,并按自己的需求修正。ServerName 127.0.0.1:80
Apache加入系统做事中,实现开机启动# cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
# chmod +x /etc/rc.d/init.d/httpd
# vi /etc/rc.d/init.d/httpd
在 #!/bin/sh下加入,如下图所示(必须要有#号)
#chkconfig: 2345 10 90
#description: Activates/Deactivates Apache Web Server
# chkconfig --add httpd
# chkconfig httpd on
Apache的启动停滞重启# service httpd start
# service httpd stop
# service httpd restart
启动Apache做事
#/usr/local/apache/bin/apachectl start
关闭Apache做事
#/usr/local/apache/bin/apachectl stop
重启Apache做事
#/usr/local/apache/bin/apachectl restart
Php-5.5.30的安装安装 libxml2-2.9.2(必须安装)安装php时会报错,缘故原由是短缺xml2-config文件
下载libxml2-2.9.2
打开官网
http://xmlsoft.org
点击downloads
点击下载
终极下载地址
ftp://xmlsoft.org/libxml2/
libxml2-2.9.2的安装
# tar -zxvf libxml2-2.9.2.tar.gz
# cd libxml2-2.9.2
# ./configure
# make && make install
安装的时候有可能提示如下缺点,则须要指定python的路径
--with-python=/usr/include/python2.7
或
--width-python=/tar/libxml2-2.92/python
安装时提示有缺点但彷佛不影相应用下面php的编译可以走通,也可以用yum去安装
# yum install -y libxml2
# yum install -y libxml2-devel
Php-5.5.30的下载
进入官方网站 http://php.net,点击downloads
下载一个稳定点的版本
选择一个下载镜像站点
Php-5.5.30的安装Php5.5.30的安装,进入软件上传的目录tar,解压php压缩文件,配置php,然后编译安装。
这里采取的是最小安装,所有扩展在安装完成往后根据须要再行安装。
# cd /tar/
# tar zxvf php-5.5.30.tar.gz
# cd php-5.5.30
# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--enable-fpm
如果不明白参数的话可以 ./configure --help 查看
参数解释:
--prefix 安装路径
--with-config-file-path 配置文件的路径
--enable-fpm PHP-FPM(FastCGI Process Manager:FastCGI进程管理器)
--with-mysql=/usr/local/mysql 安装mysql扩展
--with-gd 开启gd库
--with-apxs2=/usr/local/apache/bin/apxs 天生apache链接php的模块文件,
如果是apache+php则须要此项
如果只是启用gd而没有安装png或jpeg或freetype则会包如下的问题。
--with-png-dir=/usr/local/libpng/ png目录
--with-jpeg-dir=/usr/local/jpeg/ jpg目录
--with-freetype-dir=/usr/local/freetype freetype目录
PHP5.3.3已经集成php-fpm了,不再是第三方的包了。PHP-FPM供应了更好的PHP进程管理办法,可以有效掌握内存和进程、可以平滑重载PHP配置,比spawn-fcgi具有更多优点,以是被PHP官方收录了。在./configure的时候带 –enable-fpm参数即可开启PHP-FPM。
# make
# make install
把稳:make是可能报内存不敷的缺点,可以增加交流分区(虚拟内存)办理此问题。
缺点办理:参考:创建交流分区.doc
# make clean
检讨php是否安装成功
新建一个php文件,例如新建test.php文件放入/home/目录下
# echo '<?php echo time();?>' > /home/test.php
运行php程序
# /usr/local/php/bin/php /home/test.php
添加环境变量
# echo 'PATH=$PATH:/usr/local/php/bin' >> /etc/profile
# echo 'PATH=$PATH:/usr/local/php/sbin' >> /etc/profile
# source /etc/profile
# echo $PATH
查看php安装了那些扩展# php -m
Nginx-1.9.7和php-5.5.30整合Nginx利用fastcgi去连接php的,php的fastcig是通过php-fpm来管理的。php-fpm(FastCGI Process Manager:FastCGI进程管理器)。也便是说php端须要配置php-fpm去管理php的fastcgi进程。Nginx只须要修正配置文去连接php的fastcgi进程。这样nginx和php就可以通信了。
直接运行php-fpm报错如下
Php5.5.30的配置php-fpmPhp-fpm的配置
Php-fmp在php安装目录的sbin目录下,一样平常情形下路径是 /usr/local/php/sbin/php-fpm。安装完成php后是不能直接运行php-fpm的,须要创建php-fpm的配置文件才能启动它。
# cd /usr/local/php/etc/
# cp php-fpm.conf.default php-fpm.conf
# ll
修正php-fpm.conf文件,让www用户去运行phpfstcgi进程
# vi php-fpm.conf
修正user 和group为www用户和www用户组
Php-fpm的启动停滞和重启
1、如果用的是打补丁的方法安装php-fpm的可以用以下办法来掌握fastcgi
/usr/local/php/sbin/php-fpm{start|stop|quit|restart|reload|logrotate}
--start 启动php的fastcgi进程
--stop 逼迫终止php的fastcgi进程
--quit 平滑终止php的fastcgi进程
--restart 重启php的fastcgi进程
--reload 重新平滑加载php的php.ini
--logrotate 重新启用log文件
2、如果是php自带的php-fpm要用如下的办法去开启停滞php的fastcgi
启动
# /usr/local/php/sbin/php-fpm
停滞
查找进程号:
# ps -ef | grep php-fpm
# kill -INT 查询到的进程号
或
# killall php-fpm
重启
# ps -ef | grep php-fpm
# kill -USR2 查询到的进程号
Php-fpm开机启动# echo /usr/local/php/sbin/php-fpm >> /etc/rc.local
Php.ini的配置默认php安装往后还没有php的配置文件(php.ini)。这个文件要到php 的源码包文件中的目录中找,有一个php.int. production 文件,只要复制到/usr/local/php/etc/改名为php.ini 即可
# cd /tar/php-5.5.30
# cp php.ini-production /usr/local/php/etc/php.ini
Nginx-1.9.7的配置默认nginx的配置文件支持php-fpm的配置,只是注释掉了。我们可以打开nginx的配置文件,删除php-fpm的注释即可。
# cd /usr/local/nginx/conf
# vi nginx.conf
去掉注释并修正/script$fastcgi_script_name的路径为网站的路径
修正前
修正后
注释:
为什么fastcgi_pass 127.0.0.1:9000 由于 /usr/local/php/etc/php-fpm.conf配置文件配置的端口是9000,如下图所示
Apache与php的整合Apache的配置
修正apache配置文件
# cd /usr/local/apache/conf
# vi httpd.conf
修正ServerName# ServerNamewww.example.com:80将前面的#去掉,根据自己的需求修正,否则启动或报错。
2、加入php模块
LoadModule php5_module modules/libphp5.so
3、在AddType application/x-gzip .gz .tgz下加入如下php文件的支持
AddType application/x-httpd-php .php
4、修正入口文件配置DirectoryIndex
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
Php的配置
在安装php的时候须要增加如下赤色命令,目的是天生apache的libphp5.so动态链接库。
# ./configure \
--prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--with-apxs2=/usr/local/apache/bin/apxs
测试apache+php是否正常运行# cd /usr/local/apache/htdocs/
# echo '<?php echo phpinfo();?>' > phpinfo.php
# curl http://127.0.0.1/phpinfo.php
Php扩展与设置安装mysql扩展一样平常情形下先安装mysql,然后安装php,在php的./configure时加入--with-mysql=/usr/local/mysql/,也可以用如下的办法增加mysql扩展。否则很摧残浪费蹂躏韶光,相称于重新安装一遍。
在编译扩展的时候一定要把稳先在php源码包的根目录中实行 make clean,或则重新从源码包中解压。
进入php源码包的扩展目录,不是/usr/local/php中的目录。
# cd /tar/php-5.5.30
# make clean //很主要
# cd ext/mysql
# /usr/local/php/bin/phpize
有可能会报如下缺点,则须要安装autoconf,这里我直接yum安装。
# ./configure \
--with-php-config=/usr/local/php/bin/php-config \
--with-mysql=/usr/local/mysql/
把稳:./configure是/tar/php-5.5.30/ext/mysql下的文件,而不是/tar/php-5.5.30下的文件。
# make
# make install
安装成功往后可以看到mysql.so文件所在的位置,把他拷贝到phpinfo()中
extension_dir
/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212
所指示的位置,如果天生目录的位置和phpinfo的位置一样则不须要拷贝。
也可以通过php.ini配置extension_dir所在的目录。
修正php.ini,添加mysql扩展库
# cd /usr/local/php/etc/
# vi php.ini
在末了面加入
extensions="mysql.so"
重启php-fpm,从而去重启php的fastcgi
# cd /usr/local/php/sbin
# ./php-fpm restart
安装pdo_mysql扩展进入php源码包的扩展目录,不是/usr/local/php中的目录。
# cd /tar/php-5.5.30
# make clean //很主要
# cd ext/pdo_mysql
# /usr/local/php/bin/phpize
#./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql
# make
# make install
安装成功往后可以看到mysql.so文件所在的位置,把他拷贝到phpinfo()中
extension_dir
/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212
所指示的位置,如果天生目录的位置和phpinfo的位置一样则不须要拷贝。
也可以通过php.ini配置extension_dir所在的目录。
修正php.ini,添加mysql扩展库
# cd /usr/local/php/etc/
# vi php.ini
在末了面加入
extension=pdo_mysql.so
重启php-fpm
安装GD库扩展Gd2扩展的安装须要依赖freetype(字体)、png、jpeg的安装,否则在ext/gd/下./configure时会报如下缺点。
安装Freetype
下载freetype
打开官网
http://www.freetype.org/
点击左边的下载
选择一个镜像站点下载
选择一个版本下载
Freetype的安装
# tar -zxvf freetype-2.6.tar.gz
# cd freetype-2.6
# ./configure --prefix=/usr/local/freetype
# make
# make install
安装LibpngLibpng的下载
打开官方网站
http://libpng.com/pub/png/libpng.html
页面往下拉,选择一个源码包下载
Libpng的安装
# tar -zxvf libpng-1.6.19.tar.gz
# cd libpng-1.6.19
# ./configure --prefix=/usr/local/libpng
# make
# make install
注释:为什么这里要指定--prefix的安装位置,由于在安装gd扩展时要用到。当然也可以不指定,如果不指定的话在安装gd扩展也可以不指定扩展。
安装JpegsrcJpegsrc的下载
打开官网
http://www.ijg.org/
下载
Jpegsrc的安装
# tar zxvf jpegsrc.v9a.tar.gz
# cd jpeg-9a
# ./configure --prefix=/usr/local/jpeg
# make && make install
安装GD扩展
# cd /tar/php-5.5.30/ext/gd
# /usr/local/php/bin/phpize
# ./configure \
--with-php-config=/usr/local/php/bin/php-config \
--with-jpeg-dir=/usr/local/jpeg \
--with-png-dir=/usr/local/libpng \
--with-freetype-dir=/usr/local/freetype
注释:
如果安装jpegsrc,libpng,freetype时没有指定--prefix那么配置gd扩展时就不指定 --with-jpeg-dir等。
把稳:./configure是/tar/php-5.5.30/ext/gd下的文件,是phpsize天生的,而不是/tar/php-5.5.30下的文件。
# make
# make install
接着修正php.ini文件,添加extension=gd.so# vi /usr/local/lib/php.ini
添加 extension=gd.so
安装openssl扩展进入php源码包的扩展目录,不是/usr/local/php中的目录。
# cd /tar/php-5.5.30
# make clean //很主要
# cd ext/openssl
# /usr/local/php/bin/phpize
可能会报短缺config.m4的缺点
# ll
# mv config0.m4 config.m4
再次
# /usr/local/php/bin/phpize
# ./configure \
--with-php-config=/usr/local/php/bin/php-config
可能会报错如下,只须要重新安装openssl
# yum install openssl openssl-devel
# make && make install
/usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/
查找php.ini的位置# cd /usr/local/php/bin/
# php --ini
# vi /usr/local/php/etc/php.ini
在末了面加入
# extension=openssl.so重启 php-fpm,见上面章节
安装curl扩展用yum安装curl
# yum install curl curl-devel
进入php源码包的扩展目录,不是/usr/local/php中的目录。
# cd /tar/php-5.5.30
# make clean //很主要
# cd ext/curl
# /usr/local/php/bin/phpize# ./configure \
--with-php-config=/usr/local/php/bin/php-config \
--with-curl# make && make install
查找php.ini的位置# cd /usr/local/php/bin/
# php --ini
# vi /usr/local/php/etc/php.ini
在末了面加入
# extension=curl.so重启 php-fpm,见上面章节
查看php.ini的位置如果不知道php.ini文件的位置,可以通过php --ini命令进行查看,如下:
# php --ini
Php打开短标签# php -ini
# vi /usr/local/php/etc/php.ini
找到short_open_tag改成 short_open_tag = On
!wq
重启php-fpm
Nginx创建网站创建网站存放目录
# cd /home/www/
# mkdir mysql
# cd mysql
# mkdir www
# chown -R www:www /home/www/mysql
修正nginx配置文件,创建一个站点
# cd /usr/local/nginx/conf
# vi nginx.conf
复制一个server{}
修正根目录、域名等信息
配置文件参考:
Apache创建网站
修正apache配置文档httpd.conf加虚拟主机的支持:
Include conf/extra/httpd-vhosts.conf #取消注释
添加目录权限
<Directory "/home/wwwroot/">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
使站点支持URL重写
LoadModule rewrite_module modules/mod_rewrite.so 去掉注释
配置虚拟主机extra/httpd-vhosts.conf