您的位置 首页 php

CentOS 7怎么搭建以PHP为架构的网站教程

首先要了解什么是CentOS?

PHP的一般生产环境都在以 Linux 为内核的系统上面,虽然不代表不能用Windows内核的服务器,但是Linux的确有他的优势所在。CentOS就是Linux的发行版本之一,另外一个广为人知的就是Ubuntu,这里我们先以CentOS为例子讲解。

通过SSH协议进入到自己的CentOS服务器上面

ssh是一个安全协议,通常利用它来完成服务器和开发者PC的交互,这里我们不做相信的概述。开发者一般要注意mac的 开发环境 和windows开发环境是有所不同的,如果你用的是windows,那恭喜你,在次之前,你还要多准备一些工作,我们这里以开发者为Mac开发环境为准来进行讲述。

下面是一个简单的命令行代码:

ssh user@192.168.1.10 

利用 yum 工具来帮你安装你所需要的所有东西

yum的简介我这里引用百度百科,这是一个在 Fedora 和RedHat以及CentOS中的Shell前端软件包管理器。基于 RPM 包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

1. 升级yum

sudo yum update 

2. yum安装 epel安装源

sudo yum install epel-release 

3. yum安装 gcc

sudo yum install gcc 

安装 Nginx

1. 安装Nginx(-y代表自动选择合适的版本)

sudo yum install nginx -y 

2. 启动并且生效 nginx

sudo systemctl start nginx.servicesudo 
sudo systemctl enable nginx.service 

安装 Mariadb

Mariadb是 Mysql 的一个分支。这里有人可能要问了,为什么不安装Mysql呢?自从甲骨文公司收购了Mysql之后,Mysql就一直存在闭源的风险,这之后在CentOS7上面,直接导致Mysql不能直接通过yum来进行安装了(CentOS6之前都可以安装)。所以如果你想要使用Mysql,你需要去Mysql的官网利用curl或者wget命令,把安装包下载下来执行安装。这里我们以Mariadb为例。

1. 先修改一些yum的配置文件,使得yum能安装最新版本的Mariadb

sudo vi /etc/yum.repos.d/MariaDB10.repo 

2. 写入如下内容

[mariadb]name = MariaDB 

3. 然后安装

sudo yum install MariaDB-server MariaDB-client -y 

4. 启动并生效

sudo systemctl start mariadb.service 
sudo systemctl enable mariadb 

5. 通过mysql_secure初始化安装mariadb或者mysql

sudo mysql_secure_installation 
Enter current password for root (enter for none): Just press the Enter button 

6. 进入mariadb设置子用户和数据库

sudo mysql -u root -p 

7. 建立一个demo数据库,这一部其实可以略过,大家做个参考即可

CREATE DATABASE db_mytest; 
CREATE USER '用户名' IDENTIFIED BY '密码'; 
GRANT ALL PRIVILEGES ON db_mytest.* to '用户名'; 
exit; 

安装php、 php-fpm 及其php附属组件

sudo yum install php70w php70w-fpm php70w-common php70w-mysql php70w-opcache php70w-pear php70w-gd php70w-devel php70w-mbstring php70w-mcrypt php70w-cli php70w-pdo php70w-xml php70w-bcmath php70w-pecl-imagick php70w-soap -y 

这条命令其实包含了PHP和PHP一些核心的扩展,你自己可以看情况来选择安装,下面我们启动并生效php。(其实是PHP的进程管理器,php-fpm)

sudo systemctl start php-fpm 
sudo systemctl enable php-fpm.service 

配置PHP. ini

1. 打开php.ini,并且根据自身需要配置文件

sudo vi /etc/php.ini 

2. 修改一个php可能的漏洞

找到

; cgi .fix_pathinfo=1 

改为

cgi.fix_pathinfo=0 

3. 下面的举例参数自行配置

upload_max_filesize = 200M 
max_file_uploads = 20 
post_max_size = 200M 

4. 打开php-fpm的配置文件www.conf,并且根据自身需要配置文件

sudo vi /etc/php-fpm.d/www.conf 

找到

user = apache 
group = apache 

改为

user = nginx 
group = nginx 

5. 改nginx与fastcgi之间的链接方式,默认是tcp,我们改成速度更快的unix domain socket方式

找到

listen = 127.0.0.1:9000 
;listen.owner = nobody 
;listen.group = nobody 
;listen.mode = 0660 

改为

listen = / var /run/php5-fpm.sock 
listen.owner = nginx 
listen.group = nginx 
listen.mode = 0660 

6. 根据自身硬件和需求,可以pm更改为 dynamic 或者static

找到

pm = dynamic 

根据自己的需求来更改配置

pm = static 
pm.max_children = 10 

7. 最后千万别忘了重新一个php-fpm

sudo systemctl restart php-fpm 

配置Nginx

先查看自己的cpu核心数,如果你自己知道,可以跳过这一步

grep ^processor /proc/cpuinfo | wc -l 

查看系统的用户组,看看是否有nginx,如果你自己知道,可以跳过这一步

cut -d : -f 1 /etc/passwd 

配置nginx.conf文件

sudo vi /etc/nginx/nginx.conf 

下面我列举了一个DEMO,实际情况看自己的需求

user nginx; # 定义Nginx运行的用户和用户组

worker_processes 2; # nginx进程数,建议设置为等于CPU总核心数

error_log /var/log/nginx/error.log info;

pid /run/nginx.pid;

worker_rlimit_nofile 65535;

events {

use epoll;

worker_connections 65535;

}

http {

include mime.types;

default_type application/octet-stream;

log_format main ‘$remote_addr – $remote_user [$time_local] “$request” ‘

‘$status $body_bytes_sent “$http_referer” ‘

‘”$http_user_agent” “$http_x_forwarded_for”‘;

access_log /var/log/nginx/access.log main;

server_names_hash_bucket_size 128;

client_header_buffer_size 32k;

large_client_header_buffers 4 32k;

client_max_body_size 300m;

sendfile on;

tcp_nopush on;

tcp_nodelay on;

keepalive_timeout 60;

server_tokens off;

# FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度。下面参数看字面意思都能理解。

fastcgi_connect_timeout 300;

fastcgi_send_timeout 300;

fastcgi_read_timeout 300;

fastcgi_buffer_size 64k;

fastcgi_buffers 4 64k;

fastcgi_busy_buffers_size 128k;

fastcgi_temp_file_write_size 128k;

# gzip模块设置

gzip on;

gzip_min_length 1k;

gzip_buffers 4 16k;

gzip_http_version 1.1;

gzip_comp_level 2;

gzip_types text/plain application/x-javascript text/css application/xml;

gzip_vary on;

# 包含其他配置文件

include /etc/nginx/conf.d/*.conf;

server {

listen 80 default;

return 500;

}

}

创建统一的Fast-cgi配置文件

1. 创建的Fast-cgi配置文件(fast-cgi通用配置文件)

sudo vi /etc/nginx/fcgi.conf 

2. 写入如下内容,并且保存文件

fastcgi_param GATEWAY_INTERFACE CGI/1.1;

fastcgi_param SERVER_SOFTWARE nginx/$nginx_version;

fastcgi_param QUERY_STRING $query_string;

fastcgi_param REQUEST_METHOD $request_method;

fastcgi_param CONTENT_TYPE $content_type;

fastcgi_param CONTENT_LENGTH $content_length;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

fastcgi_param SCRIPT_NAME $fastcgi_script_name;

fastcgi_param REQUEST_URI $request_uri;

fastcgi_param DOCUMENT_URI $document_uri;

fastcgi_param DOCUMENT_ROOT $document_root;

fastcgi_param SERVER_PROTOCOL $server_protocol;

fastcgi_param REMOTE_ADDR $remote_addr;

fastcgi_param REMOTE_PORT $remote_port;

fastcgi_param SERVER_ADDR $server_addr;

fastcgi_param SERVER_PORT $server_port;

fastcgi_param SERVER_NAME $server_name;

# PHP only, required if PHP was built with –enable-force-cgi-redirect

fastcgi_param REDIRECT_STATUS 200;

配置Nginx service block

1. 创建domain.conf文件,默认在/etc/nginx/conf.d目录下

cd /etc/nginx/conf.d 
sudo vi test.com.conf 

2. 下面是一个代码案例,只做一些参考即可

server {

listen 80;

server_name example.com www.example.com;

root /var/www/example/public;

index index.php index. html index.htm;

charset utf-8;

error_page 401 /401.html;

error_page 403 /403.html;

error_page 404 /404.html;

error_page 500 502 503 504 /50x.html;

location / {

try_files $uri $uri/ /index.php?$query_string; #laravel 加入此配置

}

location = /robots.txt { allow all; access_log off; log_not_found off; }

location = /favicon.ico { allow all; access_log off; log_not_found off; }

location ~ \.php$ {

root /var/www/example/public;

fastcgi_pass unix:/var/run/php5-fpm.sock;

fastcgi_index index.php;

include fcgi.conf;

include fastcgi_params;

}

location ~ /\.ht {

deny all;

}

}

以上就是搭建PHP环境的全部教程,在这个过程当中你可能会遇到各种各样的问题,如果有需要帮助的下面留言。

原创不易,有错误的地方欢迎大家指正。

文章来源:智云一二三科技

文章标题:CentOS 7怎么搭建以PHP为架构的网站教程

文章地址:https://www.zhihuclub.com/153114.shtml

关于作者: 智云科技

热门文章

网站地图