CentOS+Nginx+PHP+MySQL配置教程(图解)

版权声明:本文为博主原创文章,转载请说明出处。 https://blog.csdn.net/ty_hf/article/details/50622888

CentOS+Nginx+PHP+MySQL详细配置,需要的朋友可以参考下。  


一、nginx安装


 1.步骤流程概览:

1).下载安装正则的库,PCRE是perl所用到的正则表达式,目的是让所装的软件支持正则表达式。默认情况下,Nginx只处理静态的网页请求,也就是html.如果是来自动态的网页请求,比如*.php,那么Nginx就要根据正则表达式查询路径,然后把*.PHP交给PHP去处理

2).下载nginx安装包到服务器

3).解压nginx安装包,configure配置参数

4).进行安装

2.详细流程:

下载地址http://nginx.org/download/

安装准备: nginx依赖于pcre,要先安装pcre pcredvl:(devepoder)

代码:

yum install pcre pcre-devel
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.8.1.tar.gz   //下载安装包
tar zxvf nginx-1.8.1.tar.gz		    //解压安装包
cd nginx-1.8.1
./configure --prefix=/usr/local/nginx	   //指定安装路径到/usr/local的nginx目录下
make && make install    		   //编译并执行安装

    启动:

cd /usr/local/nginx 


看到如下4个目录

....conf 配置文件  ... html 网页文件...logs  日志文件 ...sbin  主要进程文件(二进制程序)

   继续执行:

/sbin/nginx

   出现问题:

[root@localhost nginx]# ./sbin/nginx 
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
....
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

产生问题:不能绑定80端口,80端口已经被占用

产生原因:有时是自己装了apache,nginx,还有更多情况是操作系统自带了apache并作为服务启动,或者是阿里云的有个云盾,占用的也是这个端口

如何解决把占用80端口的软件或服务关闭即可,如下代码

netstat -ant   //查看端口当前状态
netstat -autp //查看80端口占用的进程,我这里是21907
kill -9 21907  //杀死占用80端口的进程21907(pkill -9 http  //杀死所有交http的程序)
./sbin/nginx


出现这个页面,说明Nginx已经安装成功!~

二、mysql安装

1.步骤流程概览:

1).删除系统自带mysql数据库

2).安装数据库

3).做一个数据库的配置

2.详细流程

不管是用 rpm 安装 还是用 源码包安装 还是用 yum (这个可能没有最新的库) 。都要先删除centos 自带的mysql数据库。
(linux源码包与RPM包的区别http://server.zzidc.com/fwqjc/linux/1015.html

1). 删除mysql 数据库
yum  remove mysql mysql-server mysql-libs compat-mysql51
rpm包删除方法:
rpm -qa|grep -i mysql 
rpm -ev MySQL-server-4.0.14-0 MySQL-client-4.0.14-0 
卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除 
rm -f /etc/my.cnf 
rm -rf /var/lib/mysql


(2) 安装mysql 查看这篇文章http://blog.csdn.net/liumm0000/article/details/18841197
安装rpm包
    rpm -ivh  MySQL-server-advanced-5.6.20-1.el6.x86_64.rpm
    rpm -ivh  MySQL-devel-advanced-5.6.20-1.el6.x86_64.rpm
    rpm -ivh  MySQL-client-advanced-5.6.20-1.el6.x86_64.rpm
    rpm -ivh  MySQL-shared-advanced-5.6.20-1.el6.x86_64.rpm

1 [root@localhost rpm]# /usr/bin/mysql_install_db
2 [root@localhost rpm]# service mysql start
3 [root@localhost rpm]# cat /root/.mysql_secret  #查看root账号密码,然后用显示的密码登录
修改数据库密码
mysql> SET PASSWORD = PASSWORD('hf123456');    #设置密码为123456

   mysql -uroot -p hf123456



    3). MySQL的默认安装位置

1 /var/lib/mysql/               #数据库目录
2 /usr/share/mysql              #配置文件目录
3 /usr/bin                     #相关命令目录
4 /etc/init.d/mysql              #启动脚本


4).允许root 用户远程访问:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;


更详细的操作,也可以借鉴查看这篇文章http://blog.csdn.net/liumm0000/article/details/18841197




三、PHP安装


1.步骤流程概览:

1).下载PHP安装包,版本最好5.4及以上 ,我用的5.4.9,官网下载地址:点我下载

2).安装所需的一些应用资源库

3).配置安装PHP

4).检查FPM是否安装

5).把PHP命令添加到LINUX环境变量中

6).修改php-fpm


2.详细过程

辅助命令:

./configure --help|grep -fpm  //查看安装PHP-FPM时的配置
find / -name php-fpm.conf       //从根目录中查找php-fpm.conf
ps aux|grep php  //显示有php的进程



1).下载安装包并安装应用资源库

wget http://museum.php.net/php5/php-5.4.9.tar.gz
tar -zxvf php-5.4.0.tar.gz
yum install gd
yum install gd-devel
yum install ttf
yum install freetype
yum install curl-devel
yum install pcre-devel
yum install zlib-devel
yum install libxml2-devel
yum install bzip2-devel
yum install libxpm-devel
yum install libXpm
yum install libicu-devel
yum install libXpm-devel.i386
yum install libXpm-devel.i586
yum install libXpm-devel.i686
yum install mbstring
yum install exif
yum install libicu-devel
yum install libmcrypt-devel
yum install php-mcrypt</span>


2). 切换到解压的PHP安装包文件夹中,配置安装PHP,并且检查sbin中的fpm是否存在,把配置文件copy过来

./configure  --prefix=/usr/local/php \
--with-mysql=mysqlnd \
--enable-mysqlnd \
--with-gd \ 
--enable-gd-native-ttf \
--enable-gd-jis-conv\
--enable-fpm
make && make install
cp /usr/local/src/php-5.4.9/php.ini-development  ./lib/php.ini


注意我们编译的PHP 要有如下功能:

连接mysql, gd, ttf, fpm(fascgi)方式运行,尤其是最后一项,-enable-fpm


    当他提示有Think you  的提示时,说明你配置成功了,若碰到什么问题,每台机器配置不一样,错误也不一样,复制错误提示,自己百度。

只有不报错,再安装才会成功,切记!


举个可能碰到的例子,在编译的时候出现问题: (不会就百度啊)
(1) --with-mysql的时候出现问题   
	解决Cannot find MySQL header files under /usr/include/mysql的错误
	(解决地址:http://www.ithov.com/linux/130964.shtml)


3).添加环境变量并修改php-fpm配置



添加 PHP 命令到环境变量
vim /etc/profile
 
在末尾加入
PATH=$PATH:/usr/local/php/bin
export PATH
 
要使改动立即生效执行
./etc/profile 或 source /etc/profile
 
查看环境变量
echo $PATH
 
查看php版本
php -v 

配置php-fpm
cd /usr/local/php/etc
cp php-fpm.conf.default php-fpm.conf
 
启动php-fpm
sudo /usr/local/php/sbin/php-fpm
ps aux|grep php


四、PHP与Nginx整合


nginx+php的编译

apache一般是把php当做自己的一个模块来启动的.

nginx则是把http请求变量(get,user_agent)转发给 php进程,php独立进程,nginx进行通信称为 fastcgi运行方式.

因此,apache所编译的php,是不能用于nginx.


nginx+php的配置比较简单,核心就一句话----

把请求的信息转发给9000端口的PHP进程PHP进程处理 指定目录下的PHP文件.

 vim nginx/conf/nginx.conf
插入:

location ~ \.php$ {
            root html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

测试一下:


     vim html/test.php
            echo 1111;
            echo phpinfo();

然后访问你的服务器IP,看是否有输出





说明已经把PHP与Nginx整合成功,以后把项目放到HTML文件夹下就可以使用了。
展开阅读全文

没有更多推荐了,返回首页