linux php+nginx+mysql,linux下nginx+php+mysql环境搭建

(更新:前后字体不一样,不知道为什么,不太会设置新浪博客这个字体)

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值