(更新:前后字体不一样,不知道为什么,不太会设置新浪博客这个字体)
linux下nginx+php+mysql环境搭建
/*****************************************/
机器:centos 6.5
nginx:nginx-1.1.8
php:php-5.6.31
mysql:5.1.59
/*****************************************/
一、搭建环境前需要安装的软件如下:
1、nginx-1.1.8
http://nginx.org/download/nginx-1.1.8.tar.gz
2、php-5.6.31
http://cn.php.net/distributions/php-5.6.31.tar.gz
在此附上php的源码下载地址:http://php.net/downloads.php可以自由选择自己想要下载的版本
3、php-5.2.6-fpm-0.5.8.diff.gz
http://php-fpm.org/downloads/php-5.2.6-fpm-0.5.8.diff.gz
4、mysql-5.1.59
http://downloads.mysql.com/archives/mysql-5.1/mysql-5.1.59.tar.gz
5、libxml2-2.8.0
ftp://xmlsoft.org/libxml2/libxml2-2.8.0.tar.gz
6、libmcrypt-2.5.8
https://jaist.dl.sourceforge.net/project/mcrypt/Libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
7、zlib-1.2.3
https://jaist.dl.sourceforge.net/project/libpng/zlib/1.2.3/zlib-1.2.3.tar.gz
8、libpng-1.2.31
http://files.directadmin.com/services/custombuild/libpng-1.2.31.tar.gz
9、jpegsrc.v6b
http://down1.chinaunix.net/distfiles/jpegsrc.v6b.tar.gz
10、freetype-2.3.5
http://nongnu.askapache.com/freetype/freetype-2.3.5.tar.gz
11、autoconf-2.61
http://ftp.gnu.org/gnu/autoconf/autoconf-2.61.tar.gz
12、gd-2.0.32
http://down1.chinaunix.net/distfiles/gd-2.0.32.tar.gz
13、ncurses-5.6
http://ftp.gnu.org/gnu/ncurses/ncurses-5.6.tar.gz
14、pcre-8.10
https://jaist.dl.sourceforge.net/project/pcre/pcre/8.10/pcre-8.10.tar.gz
15、openssl-1.0.0e
http://www.openssl.org/source/openssl-1.0.0e.tar.gz
二、开始进行软件的安装
1、检查机器上是否安装了gcc,没有的话进行安装
gcc
-v 检查gcc版本,如果有输出,则说明机器山已经安装了gcc,跳过这一步,如果没有安装的话:
yum install gcc
yum install gcc-c++
(centos采用yum安装软件,如果是ubuntu的话是apt-get,具体请自行度娘)
2、开放80、3306和22端口(http服务为80端口,3306一般是数据库实用的服务端口,22为ssh服务)
#关闭防火墙
service iptables stop
#找到iptables文件,在我的机器上位置是/etc/rc.d/init.d/iptables
vim
/etc/rc.d/init.d/iptables
#添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
#重启防火墙
service iptables restart
3、安装libxml2
tar
-zvxf libxml2-2.8.0.tar.gz
cd
libxml2-2.8.0
./configure
--prefix=/usr/local/libxml2/
make
make install
4、安装libmcrypt
tar
-zvxf libmcrypt-2.5.8.tar.gz
cd
libmcrypt-2.5.8
./configure --prefix=/usr/local/libmcrypt/
--enable-ltdl-install
make
make install
5、安装libxml2-devel、openssl-devel、libtool、libpng、libpng-devel和libssl-devel软件依赖(之所以在这里要安装这些软件包,是因为我在安装nginx和php的时候提示缺少这些依赖包,安装之后解决,有的人的机器上可能已经安装好了,可以自行检查一下)
yum
install libxml2-devel
yum
install libssh-devel
yum
install libtool
yum
install openssl-devel
yum
install libpng
yum
install libpng-devel
6、安装zlib
tar
-zvxf zlib-1.2.3.tar.gz
cd
zlib-1.2.3
./configure
make
make install
7、安装libpng
tar
-zvxf libpng-1.2.31.tar.gz
cd
libpng-1.2.31
./configure
--prefix=/usr/local/libpng/
make
make install
8、安装jpegsrc.v6b
mkdir /usr/local/jpeg6
mkdir /usr/local/jpeg6/bin
mkdir /usr/local/jpeg6/lib
mkdir /usr/local/jpeg6/include
mkdir -p
/usr/local/jpeg6/man/man1
tar
-zvxf jpegsrc.v6b.tar.gz
cd
jpeg-6b
./configure --prefix=/usr/local/jpeg6/
--enable-shared --enable-static
make
make install
9、安装freetype
tar
-zvxf freetype-2.4.0.tar.gz
cd
freetype-2.4.0
./configure
--prefix=/usr/local/freetype/
make
make install
10、安装autoconf
tar
-zvxf autoconf-2.61.tar.gz
cd
autoconf-2.61
./configure
make
make install
11、安装gd
tar
-zvxf gd-2.0.32.tar.gz
cd
gd-2.0.32
./configure --prefix=/usr/local/gd2/
--with-jpeg=/usr/local/jpeg6/
--with-freetype=/usr/local/freetype/
make
make install
12、安装pcre
tar
-zvxf pcre-8.10.tar.gz
cd
pcre-8.10
./configure
make
make install
13、安装openssl
tar
-zvxf openssl-1.0.0e.tar.gz
cd
openssl-1.0.0e
./config
--prefix=/usr/local/openssl
make
make install
14、安装nginx
groupadd www
useradd -g www www
tar
-zvxf nginx-1.1.8.tar.gz
cd
nginx-1.1.8
./configure --user=www --group=www
--prefix=/usr/local/nginx
--with-openssl=~/phpstudy/lamp_src/openssl-1.0.0e
--with-http_stub_status_module
--with-http_ssl_module
make
make install
(我安装的时候碰到了一些麻烦,大家遇到麻烦的可以看看我的另外一篇博文《nginx安装出现的一些小问题》,毕竟每个人机器不一样,总之就是缺啥依赖就装啥,其他的,自行度娘吧。。。)
15、安装ncurses
yum
install ncurses-devel
tar
-zvxf ncurses-5.6.tar.gz
cd
ncurses-5.6
./configure —with-shared —without-debug
—without-ada —enable-overwrite
Make
Make install
16、安装mysql
groupadd mysql
useradd -g mysql mysql
tar
-zvxf mysql-5.1.59.tar.gz
cd
mysql-5.1.59
./configure --prefix=/usr/local/mysql/
--with-extra-charsets=all
make
make install
cp
support-files/my-medium.cnf /etc/my.cnf
/usr/local/mysql/bin/mysql_install_db
—user=mysql
chown -R root /usr/local/mysql
chown -R mysql
/usr/local/mysql/var
chown -R mysql
/usr/local/mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql
&
cp
./support-files/mysql.server
/etc/rc.d/init.d/mysqld
chown root.root
/etc/rc.d/init.d/mysqld
chmod 755
/etc/rc.d/init.d/mysqld
chkconfig --add mysqld
chkconfig --list mysqld
chkconfig --levels 245 mysqld
off
#配置mysql
cd
/usr/local/mysql/
#查看所有mysql参数
bin/mysqladmin Variables
#不用密码可以直接登录本季服务器
bin/mysql -uroot
Delete from mysql.user where host=‘localhost’
and user=‘’;
flush privileges
#设置root密码,可以设置为自己想要设置的,这里设置为12345
Set
password for
‘root’@‘localhost’=password(‘12345’);
#配置可远程连接mysql
use
mysql
select user, password, host from
user;
delete from user where
host=‘localhost.localdomain’;
delete from user where
host=‘127.0.0.1’;
update user set host=‘%’ where
user=‘root’;
#重启mysql
service mysqld restart
17、安装php
tar
-zvxf php-5.6.31.tar.gz
gzip -cd php-5.2.6-fpm-0.5.8.diff.gz | patch -d
php-5.6.31 -p1
cd
php-5.6.31
./configure --prefix=/usr/local/php/
--with-config-file-path=/usr/local/php/etc/
--with-mysql=/usr/local/mysql/
--with-libxml-dir=/usr/local/libxml2/
--with-jpeg-dir=/usr/loc
al/jpeg6/
--with-freetype-dir=/usr/local/freetype/ --with-gd
--with-mcrypt=/usr/local/libmcrypt/
--with-mysqli=/usr/local/mysql/bin/mysql_config --enable-soap
--enab
le-mbstring=all —enable-sockets
—enable-fpm
(ps:
有的人在configure的参数里面对于gd有指定gd的安装目录的—with-gd=/usr/local/gd2/,但是我这样写的时候提示php5.6版本的需要gd2.0以上的,但是又没有找到gd2.0哟上版本的源代码,于是我在这里把后面的安装目录去掉,可以正常编译,并且最后打印phpinfo有gd的信息
有的configure参数最后里面还有—enable-fastcgi,我这样写会给警告,提示这个参数已经被废弃,原因是php5.6里面默认开启了fastcgi,因此编译时不用再加上这个参数了
)
make
make install
cp
php.ini-development /usr/local/php/etc/php.ini
vim
/usr/local/php/etc/php-fpm.conf
#找到user=nobody和group=nobody这两行,有注释的话把注释去掉,没有的话可以不用更改
#启动php
/usr/local/php/sbin/php-fpm
18、nginx配置
vim
/usr/local/nginx/conf/nginx.conf
#在server块中找到location
/
修改解析php文件存放的路径,如下:
location / {
root /var/www/htdocs;
index index.html index.htm index.php;
}
#root表示虚拟目录设置为/var/www/htdocs,增加默认解析index.php文件
#在server块中找到location
~ /.php$,修改fastcgi配置,如下:
location ~ \.php$ {
root /var/www/htdocs;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param. SCRIPT_FILENAME
/var/www/htdocs$fastcgi_script_name;
Include fastcgi_params;
}
#将nginx添加到自启动中
echo "usr/local/nginx/sbin/nginx" >>
/etc/rc.d/rc.local
#将php添加到自启动中
echo "usr/local/php/sbin/php-fpm" >>
/etc/rc.d/rc.local
19、nginx虚拟主机配置
#建立如下目录
mkdir
/usr/local/nginx/conf/vhost
vim dev_localhost.config
#不带url重写
server {
listen
80;
server_name xxxxx(这个地方写你自己的机器ip);
access_log
logs/dev.access.log;
root
/var/www/htdocs;
server_name_in_redirect off;
location /
{
index index.html
index.php;
if (-e $request_filename )
{
break;
}
location ~ .*\.php$
{
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
Include fastcgi_params;
}
}
#zend框架,带url重写
server {
listen
80;
server_name
xxxx(这个地方写自己的机器ip);
access_log
logs/dev.access.log;
root
/var/www/htdocs;
location /
{
index index.html
index.php;
if (-e $request_filename )
{
break;
}
if ( $request_filename ~*
\.(js|ico|gif|jpg|jpeg|xml|swf|txt|png|css|htm
l|htm)$ ) {
return 404;
}
rewrite .*
index.php;
}
location ~
.*\.php$ {
include
fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
#fastcgi_param REQUEST_URI
$document_uri?$query_string;
fastcgi_read_timeout
120;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index
index.php;
}
}
vim
/usr/local/nginx/conf/nginx.conf
#在http最后一行加入:
Include
/usr/local/nginx/conf/vhost/dev_localhost.config;
#重启nginx
/usr/local/nginx/sbin/nginx -s
reload
#重启php
/usr/local/php/sbin/php-fpm
到这里为止环境就搭建好了,你可以在/var/www/htdocs中写个index.php脚本,打印hello
world,并在浏览器中输入你的机器ip,成功打印则代表环境搭建好了,没成功的再仔细从前端F2调试一下看后端是什么错误吧~~
由于每个人的机器不一样,期间发生别的问题可以度娘一下
此篇博文参考:
http://blog.csdn.net/woshihaiyong168/article/details/54176360