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
d.启动nginx服务:
service nginx start //或者 /etc/init.d/nginx start
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表示服务端
b.启动mysql服务:
service mysqld start // 或者使用 /etc/init.d/mysqld start 一样
c.设置mysql服务随系统启动:
chkconfig mysqld on
d.使用 /usr/bin/mysql_secure_installation 命令设置mysql的root密码以及禁止匿名访问等设置。
e.测试登录mysql:
输入mysql –u root –p
回车后再输入密码
使用命令”show databases; ”查看现有的数据库
f.允许root远程登录
mysql默认是不允许root账户的远程登录的,我们可以使用sql语句
grant all privileges on *.* to ‘root’@’%’ identified by ‘123456’ with grant option;
来允许任意主机使用root账户(密码123456)来访问数据库。
查看mysql的user表:
其中第四行host=’%’, user=’root’就表示允许所有主机使用root账户登录。
g.如果要关闭root账户的远程登录权限,则可以直接删除该行数据,然后刷新mysql的系统权限。
delete from mysql.user where host=’%’ and user=’root’;
flush privileges;
当然,在生产环境中,最好是要关闭数据库的远程登录。然后可以在服务器端配置一个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目录下多了以下三个文件。
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文件,如下图所示,黄色的为修改的,红色表示要删除前面的#号注释。
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识别不同的域名,以转向不同的目录。
- 建立两个网站目录 /www/domain-1与/www/domain-2,在目录内分别写一个php或index.html文件;
- 在/etc/nginx/conf.d目录下新建两个conf配置文件www.domain-1.conf与www.domain-2.conf;
以我们hawu.me的conf文件为例,其中listen为默认的80端口,server_name为要识别的域名
重启nginx服务,然后就能通过不同的域名来访问网站了,www.domain-1.com或者www.domain-2.com。