CentOS+Nginx+PHP+MySQL配置教程(图解)
CentOS+Nginx+PHP+MySQL详细配置,需要的朋友可以参考下。
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-mysql51rpm包删除方法: 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).下载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 的提示时,说明你配置成功了,若碰到什么问题,每台机器配置不一样,错误也不一样,复制错误提示,自己百度。
只有不报错,再安装才会成功,切记!
configure: error: Cannot find libmysqlclient under /usr.错误解决
(http://www.iitshare.com/cannot-find-libmysqlclient-under-usr.html)解决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文件夹下就可以使用了。
- 上一篇: NotORM使用介绍
- 下一篇: ThinkPHP下SMTP的发送邮件