CentOS+Nginx+PHP+MySQL 服务器搭建自己的网站

今天教大家怎么搭建自己的小网站。首先要做一个大家都能访问的网站需要一个域名和一个主机。这两样在百度云、阿里云、腾讯云都有卖而且价格还不一样,想省钱的小伙伴可以先货比三家再进行购买。阿里云和腾讯云都有针对于学生的优惠政策。通过学生实名认证之后在阿里云可以享受9.9元一个月的主机,在腾讯云可以享受1元一个月的主机并且送一个域名。经过简单的对比阿里云和腾讯云。我感觉腾讯云比阿里云更便宜一些。所以选择了在腾讯云购买域名和主机。
腾讯云域名选购页面:

6CBE073E-33F6-4E2B-8E9D-1BEABDD42F8C.png

连接:https://dnspod.qcloud.com/?from=console
腾讯云主机选购页面:
A1CE1F91-2438-4CE3-9B71-97B857C9C352.png

连接:https://buy.qcloud.com/cvm
SecureCRT登录终端
根据自己的外网ip地址、用户名、密码就可以登录主机了,为了方便远程登录,我这里安装了一个软件SecureCRT,SecureCRT方便的是可以同时开启多个终端操作远程服务器。而且还可以进行文件上传和下载。
SecureCRT管理界面:
4DE609BC-19B0-44BE-9BE9-EBD3D89A7720.png

FileZilla文件上传下载
但是对于文件上传下载功能,我更推荐安装一个FTP工具,FileZilla支持多文件上传,续点上传,可视化目录界面,我这里使用的是FileZilla。
FileZilla管理界面:


BC8878F5-D0B2-49D8-AAD2-725738647E80.png

CentOS安装MySQL

通过SecureCRT登录远程终端。
1.下载mysql的repo源

$ wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
0CAEE63E-F51D-4AF7-8091-1A5CA7438658.png

2.安装mysql-community-release-el7-5.noarch.rpm包

$ sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
50AF011D-7558-4B2F-A3E1-C5237DAD6653.png
  1. 安装mysql
$ sudo yum install mysql-server

这个安装内容比较长等待输入时,输入y如下图,以后遇到这种情况都是输入y。


81423943-D8A8-4C07-A6E1-3537DC2937DD.png

安装成功之后是没有密码的,我们可以重置一个数据库密码。

  1. 重置密码
    远程登录
$ mysql -u root -p

登录成功之后修改密码

mysql>use mysql;
mysql>update user set password=password('123456') where user='root';
mysql>exit;
  1. 开放3306端口
    用vim打开iptables文件
$ sudo vim /etc/sysconfig/iptables

按i切换到插入模式添加以下内容:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT

:wq保存后重启防火墙:

$ sudo service iptables restart

这样从其它客户机也可以连接上mysql服务了。

CentOS安装PHP

1、下载php源码包
http://www.php.net/downloads.php
将安装包下载在本地之后使用之前安装的FileZilla上传到远程服务器
2 、安装php
解压php压缩包

tar -xvf php-5.6.2.tar.gz

查看解压目录

ls
213D6DB7-1E49-4B89-8030-0439ACC0B908.png

进入解压目录

cd  php-5.6.2

执行configure文件

 ./configure --prefix=/usr/local/php --with-config-file-path=/etc --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-gettext --enable-mbstring --with-iconv --with-mcrypt --with-mhash --with-openssl --enable-bcmath --enable-soap --with-libxml-dir --enable-pcntl --enable-shmop --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-sockets --with-curl --with-zlib --enable-zip --with-bz2 --with-readline --without-sqlite3 --without-pdo-sqlite --with-pear

出现错误:no acceptable C compiler found in $PATH
See `config.log' for more details
解决办法:

安装GCC软件套件:yum install gcc

出现错误: congigure error: xml2-config not found.
解决办法:

执行命令: sudo yum install libxml2-devel
查看是否成功: find / -name "xml2-config"

出现错误: congigure error: Cannot find OpenSSL's <evp.h>
解决办法:

yum install openssl openssl-devel
ln -s /usr/lib64/libssl.so /usr/lib/

出现错误: configure: error: Please reinstall the BZip2 distribution
解决办法:

yum install bzip2 bzip2-devel

出现错误: configure: error: Please reinstall the libcurl distribution -easy.h should be in <curl-dir>/include/curl/
解决办法:

出现错误: configure: error: mcrypt.h not found. Please reinstall libmcrypt.
解决办法:

sudo yum install libmcrypt libmcrypt-devel mcrypt mhash

出现错误:configure: error: Please reinstall readline - I cannot find readline.h
解决办法:

sudo yum install readline-devel

最后执行make操作

make 
make install

如果出现有提示make: [ext/fileinfo/libmagic/apprentice.lo] Error 1错误。的/configure 后面加上--disable-fileinfo, 再次./configure即可。
如果出现make: [sapi/cli/php] Error 1 修改Makefile 在EXTRA_LIBS = 最后加 -liconv 然后重新再次 make 即可。
添加 PHP 命令到环境变量

sudo 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

出现错误:[pool www] cannot get uid for user 'www'
解决办法:

新建一个启动php的用户:sudo adduser php
编辑php-fpm.conf文件: sudo vi php-fpm.conf
将user和group分别改为php
B5D89F46-5715-4EE6-A7AB-D5EEC5FEAE35.png

再次启动php-fpm

sudo /usr/local/php/sbin/php-fpm

CentOS安装Nginx

1.安装依赖环境。
在安装nginx前,需要确保系统已经安装了g++、gcc、 ncurses-devel 、openssl-devel、pcre-devel和zlib-devel软件。

yum install gcc gcc-c++ ncurses-devel
yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

检查系统安装的ningx

find -name nginx
./nginx 
./nginx/sbin/nginx 
./nginx-1.2.6/objs/nginx

卸载系统原有的nginx

yum remove nginx ```
2.centos安装nginx 
进入根目录新建一个download目录

cd /
mkdir download

进入download目录

cd download

下载nginx安装包

wget http://nginx.org/download/nginx-1.9.9.tar.gz

解压安装包

tar -zxv -f nginx-1.9.9.tar.gz

重命名解压文件夹

mv nginx-1.9.9 nginx ```
进入nginx目录执行configure

cd nginx 
./configure --prefix=/usr/local/nginx 
make 
make install

特别注意:configure --prefix 配置,后面的目录,不能是安装包当前的解压目录,因为后面再install过程中,会从解压包中拷贝配置文件到指定的prefix中去,如果这两个目录相同,cp失效出现 the same file 的错误,导致
install 终止,安装会失败。
3.配置防火墙
配置防火墙开启80端口,不开启的话,有时防火墙会不让外网访问80端口我们就无法访问nginx配置的网站了。
修改防火墙配置:
输入以下命令:

sudo vi /etc/sysconfig/iptables

在文件中添加:

iptables -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 

重启防火墙

systemctl restart iptables (代替 service iptables restart)```
4.启用nginx命令

cd /opt/nginx/sbin
./nginx ```
5.停止nginx命令
查询nginx主进程号

ps -ef | grep nginx

停止进程

kill -QUIT 主进程号 

快速停止

kill -TERM 主进程号  

强制停止

pkill -9 nginx 

6.0重启nginx命令

/usr/local/nginx/sbin/nginx -s reload 

7.验证nginx配置成功

9651E60E-964B-4F0B-B8DD-BD7ADD01F91C.png

8.修改nginx的配置文件(/usr/local/nginx/conf/nginx.conf)

cd /usr/local/nginx/conf
sudo vim nginx.conf

找的如下代码:

EA3E7645-9F26-46EC-AE61-AD2C060CAC1F.png

将注释井号删除掉,并且修改网站根目录让其能够访问php文件,如下图。

5A35C293-4378-4006-8BD4-61B01BBEDE01.png
location / {
root web根目录;
index index.html index.htm index.php;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME 需要修改web根目录$fastcgi_script_name;
include fastcgi_params;
}

重启nginx

cd /usr/local/nginx
./sbin/nginx -s reload

在web根目录下创建index.php

cd html
sudo vim index.php

在index.php文件中加入如下php代码显示php配置信息

<?php echo phpinfo(); ?>

在浏览器中输入http://ip/index.php查看成功即可。
//注:根据自己的配置修改web根目录即可,如我的为/usr/local/nginx/html。
如果启动php-fpm出现错误: can not get uid for www,新建一个nginx用户,修改php-fpm.conf中user为nginx group为nginx
9.验证成功访问php页面。

E5FB6079-45BA-4C3B-B2DF-F378B6ABB845.png

推荐阅读更多精彩内容