php教程 chm
本文阐述的是一个在CentOS上面怎么去快速搭建一个PHP的生产环境,原创文章,希望给正走在开发路上的Coder一些经验和分享首先要了解什么是CentOS? PHP的一般生产环境都在资源网以Linux为内核的系统上面,虽然不代表不能用Windows内核的服务器,但是Linux的确有他的优势所在。
CentOS就是Linux的发行版本之一,另外一个广为人知的就是Ubuntu,这里我们先以C资源网entOS为例子讲解通过SSH协议进入到自己的CentOS服务器上面ssh是一个安全协议,通常利用它来完成服务器和开发者PC的交互,这里我们不做相信的概述。
开发者一般要注意mac的开发环境和windo资源网ws开发环境是有所不同的,如果你用的是windows,那恭喜你,在次之前,你还要多准备一些工作,我们这里以开发者为Mac开发环境为准来进行讲述下面是一个简单的命令行代码:
ssh user@192.16资源网8.1.10利用yum工具来帮你安装你所需要的所有东西yum的简介我这里引用百度百科,这是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器基于RPM包管理,能够从指定的服资源网务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。
1. 升级yumsudo yum update2. yum安装 epel安装源sudo 资源网yum install epel-release3. yum安装 gccsudo yum install gcc安装Nginx
1. 安装Nginx(-y代表自动选择合适的版本)sudo yum ins资源网tall nginx -y2. 启动并且生效Nginxsudo systemctl start nginx.servicesudo
sudo systemctl enable nginx.service资源网安装MariadbMariadb是Mysql的一个分支这里有人可能要问了,为什么不安装Mysql呢?自从甲骨文公司收购了Mysql之后,Mysql就一直存在闭源的风险,这之后在CentOS7上面,直接资源网导致Mysql不能直接通过yum来进行安装了(CentOS6之前都可以安装)。
所以如果你想要使用Mysql,你需要去Mysql的官网利用curl或者wget命令,把安装包下载下来执行安装这里我们以Ma资源网riadb为例1. 先修改一些yum的配置文件,使得yum能安装最新版本的Mariadb
sudo vi /etc/yum.repos.d/MariaDB10.repo2. 写入如下内容[mariadb资源网]name = MariaDB3. 然后安装sudo yum install MariaDB-server MariaDB-client -y
4. 启动并生效sudo systemctl start 资源网mariadb.servicesudo systemctl enable mariadb5. 通过mysql_secure初始化安装mariadb或者mysql
sudo mysql_secure_in资源网stallationEnter current password for root (enter for none): Just press the Enter button
6. 进入mariadb设资源网置子用户和数据库sudo mysql -u root -p7. 建立一个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-dev资源网el 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-fpmsudo systemctl enable php-fpm.service
配置PHP.ini1. 打开php.ini,并且根据自身需要配置文件sudo vi /etc/ph资源网p.ini2. 修改一个php可能的漏洞找到;cgi.fix_pathinfo=1改为cgi.fix_pathinfo=0
3. 下面的举例参数自行配置upload_max_filesize = 200资源网Mmax_file_uploads = 20post_max_size = 200M4. 打开php-fpm的配置文件www.conf,并且根据自身需要配置文件
sudo vi /etc/php-fpm资源网.d/www.conf找到user = apachegroup = apache改为user = nginxgroup = nginx5. 改nginx与fastcgi之间的链接方式,默认是tcp,我资源网们改成速度更快的unix domain socket方式
找到listen = 127.0.0.1:9000;listen.owner = nobody;listen.group = nobody;li资源网sten.mode = 0660改为listen = /var/run/php5-fpm.sock
listen.owner = nginxlisten.group = nginxlisten.mode资源网 = 06606. 根据自身硬件和需求,可以pm更改为dynamic或者static找到pm = dynamic
根据自己的需求来更改配置pm = staticpm.max_children = 107资源网. 最后千万别忘了重新一个php-fpmsudo 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_nofi资源网le 65535;events { use epoll;
worker_connections 65535;}http { include mime.types; default_type applic资源网ation/octet-stream; log_format main $remote_addr - $remote_user [$time_local] "$request"
$status $bod资源网y_bytes_sent "$http_referer" "$http_user_agent" "$http_x_forwarded_for"; access_log /var/log/nginx/a资源网ccess.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_time资源网out 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 appli资源网cation/x-javascript text/css application/xml; gzip_vary on;
# 包含其他配置文件 include /etc/nginx/conf.d/*.co资源网nf; server { listen 80 default; return 500; }}创建统一的Fast-cgi配置文件
1. 创建的Fast-cgi配置文件(fast-cgi通用配置文件)sud资源网o vi /etc/nginx/fcgi.conf2. 写入如下内容,并且保存文件 fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERV资源网ER_SOFTWARE nginx/$nginx_version;fastcgi_param QUERY_STRING $query_string;fastcgi_param REQUEST_METH资源网OD $request_method;
fastcgi_param CONTENT_TYPE $content_type;fastcgi_param CONTENT_LENGTH $content_le资源网ngth;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fas资源网tcgi_script_name;fastcgi_param REQUEST_URI $request_uri;fastcgi_param DOCUMENT_URI $document_uri;
fas资源网tcgi_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_a资源网ddr;fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;# PHP only, requir资源网ed if PHP was built with --enable-force-cgi-redirect
fastcgi_param REDIRECT_STATUS 200;配置Nginx servic资源网e block1. 创建domain.conf文件,默认在/etc/nginx/conf.d目录下cd /etc/nginx/conf.d
sudo vi test.com.conf2. 下面是一个代码资源网案例,只做一些参考即可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.h资源网tml; 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 inde资源网x.php; include fcgi.conf; include fastcgi_params;
} location ~ /\.ht { deny all; }}以上就是搭建PHP环境的全部教程,在资源网这个过程当中你可能会遇到各种各样的问题,如果有需要帮助的下面留言原创不易,有错误的地方欢迎大家指正。
亲爱的读者们,感谢您花时间阅读本文。如果您对本文有任何疑问或建议,请随时联系我。我非常乐意与您交流。资源网
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。