安装与配置nginx+php+mysql:centOS篇

安装与配置nginx+php+mysql:centOS篇

1. 安装nginx

a.添加nginx的软件源,新建文件/etc/yum.repos.d/nginx.repo

b.在该文件中填写如下内容:

[nginx] 
name=nginx repo 
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/ 
gpgcheck=0 
enabled=1

c.执行yum安装命令:

yum install nginx

word-image

d.启动nginx服务:

service nginx start                //或者 /etc/init.d/nginx start

word-image

e.常用的nginx命令:

/etc/init.d/nginx start           //或者service nginx start

/etc/init.d/nginx stop            //或者 service nginx stop

/etc/init.d/nginx restart        //或者 service nginx restart

配置文件在 /etc/nginx/nginx.conf

 

2. 安装mysql

a.输入安装命令: yum install mysql mysql-server

其中mysql表示客户端、mysql-server表示服务端

word-image

b.启动mysql服务:

service mysqld start       // 或者使用 /etc/init.d/mysqld start 一样

word-image

c.设置mysql服务随系统启动:

chkconfig mysqld on

word-image

d.使用 /usr/bin/mysql_secure_installation 命令设置mysql的root密码以及禁止匿名访问等设置。

e.测试登录mysql:

输入mysql –u root –p

回车后再输入密码

使用命令”show databases; ”查看现有的数据库

word-image

word-image

f.允许root远程登录

mysql默认是不允许root账户的远程登录的,我们可以使用sql语句

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

来允许任意主机使用root账户(密码123456)来访问数据库。

屏幕快照 2015-04-28 上午2.23.34

查看mysql的user表:

word-image

其中第四行host=’%’, user=’root’就表示允许所有主机使用root账户登录。

g.如果要关闭root账户的远程登录权限,则可以直接删除该行数据,然后刷新mysql的系统权限。

delete from mysql.user where host='%' and user='root';

flush privileges;

word-image

当然,在生产环境中,最好是要关闭数据库的远程登录。然后可以在服务器端配置一个phpMyAdmin,来提供远程管理数据库。

 

3. 安装php

a.添加软件源(因为可能有些php组件CentOS默认的软件源里找不到)

rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

 

安装好后可以ls /etc/yum.repos.d目录下多了以下三个文件。

屏幕快照 2015-03-14 上午1.40.00

b.键入命令 yum install php php-fpm, 安装php以及FastCGI管理器php-fpm。

c.安装其他php扩展(可选,一般装个php-mysql, php-mbstring就差不多了)

yum install php-gd php-mysql php-mbstring php-xml php-mcrypt

d.启动php-fpm并设置为随机启动

service php-fpm start

chkconfig php-fpm on

 

4. 配置一个php网站

a.新建一个网站目录/alidata/www/test_site

b.在该目录下新建一个php文件info.php,内容如下:

<?php
phpinfo();
?>

 

c.新建一个与该网站对应的nginx配置文件:

cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.d/test_site.conf

d.修改新建的conf文件,如下图所示,黄色的为修改的,红色表示要删除前面的#号注释。

afda

e.重启nginx服务:service nginx restart。然后就能通过ip+端口号来访问该网站了。http://your-ip:9001/info.php

 

5. 多个域名共用一个ip与80端口号。

情况是这样的,我有两个域名,两个网站,但只有一个服务器亦即只有一个公网ip。本来在本机测试的时候可以使用不同端口号的形式。 亦即网站A使用http://ip:9001;网站B使用http://ip:9002来访问。但不幸的是,域名服务商的域名解析只能到ip为止,不再细分端口号,只能使用80端口。即我的两个域名:www.domain-1.com与www.domain-2.com都只能解析到公网ip的默认端口80。

这样的话,我们可以利用nginx配置文件.conf中的server_name来让nginx识别不同的域名,以转向不同的目录。

  1. 建立两个网站目录 /www/domain-1与/www/domain-2,在目录内分别写一个php或index.html文件;
  2. 在/etc/nginx/conf.d目录下新建两个conf配置文件www.domain-1.conf与www.domain-2.conf;

以我们hawu.me的conf文件为例,其中listen为默认的80端口,server_name为要识别的域名

屏幕快照 2014-11-30 上午4.25.24

重启nginx服务,然后就能通过不同的域名来访问网站了,www.domain-1.com或者www.domain-2.com。

Leave a Reply

Your email address will not be published. Required fields are marked *

TOC