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.详细流程
yum remove mysql mysql-server mysql-libs compat-mysql51
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
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 #启动脚本 |
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
更详细的操作,也可以借鉴查看这篇文章 http://blog.csdn.net/liumm0000/article/details/18841197
三、PHP安装
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 的提示时,说明你配置成功了,若碰到什么问题,每台机器配置不一样,错误也不一样,复制错误提示,自己百度。
只有不报错,再安装才会成功,切记!
解决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整合
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文件夹下就可以使用了。