PHP 環境の構築方法: 最初に「yum install wget」コマンドを使用して wget をインストールし、次に Nginx をインストールし、コンパイルして gcc 環境に依存し、次に MySQL をコンパイルしてインストールし、環境変数を構成します。 install コマンドで PHP をコンパイルしてインストールし、「PHP-FPM」を起動します。
PHP 環境をセットアップするにはどうすればよいですか?このチュートリアルでわかるのは、PHP 環境をセットアップする方法です。 PHP 環境のセットアップ (詳細な説明)
この記事の手順に従って、CentOS6.* システム上に LNMP 環境または LAMP 環境を構築するのに役立ちます。これらの環境は、サーバーのオンライン動作環境として利用できます。
ディレクトリ:関連提案:
#●●《2019年おすすめPHP環境構築ツール6選》#●●《
php環境構築チュートリアル:PHP開発環境統合インストールと単独インストールのビデオチュートリアルmac php 環境構築チュートリアル: mac php 開発環境の構築と構成チュートリアルPHP 開発者として知っておくべきことPHP 開発環境の構築方法 現在主流の PHP 開発環境の組み合わせは LAMP と LNMP ですが、この記事では CentOS 上に LNMP 開発環境を構築する方法を紹介します。
1: 準備 2: Nginx のインストール3: MySQL のインストール#4: PHP のインストール
##5: CentOS7 起動時に /etc/rc.local が実行されない
1: 準備作業1. wgetのインストール
wget
は、インターネットからファイルを自動的にダウンロードする無料のツールです。HTTP、HTTPS、FTP という 3 つの最も一般的な TCP/IP プロトコルを介したダウンロードをサポートし、HTTP プロキシを使用できます。sudo yum install wget
2. net-tools のインストールCentOS7 のミニインストール時に ifconfig コマンドが使用できない場合は、net-tools## をインストールする必要があります。 #, if CentOS6 版をインストールする場合は、インストールする必要はありません
sudo yum install net-tools
3. yum ソースを更新します
yum -y update
4. インストールvim
sudo yum install vim
5. 設定表示行番号
vim ~/.vimrc set nu #输入 set nu 后退出保存
2: Nginx
# のインストール##1. 依存関係のインストール#(1)
nginxのインストール 公式サイトからダウンロードしたソースコードをコンパイルする必要があります (コンパイルは gcc 環境に依存します)。 . gcc 環境がない場合は、gcc-c をインストールする必要があります。 (2)
PCRE は Perl ライブラリ、中国語の「Perl 互換正規表現ライブラリ」です。 Nginx をインストールする目的は、Nginx が URI 書き換え機能を備えた書き換えモジュールをサポートできるようにすることです. pcre ライブラリがインストールされていない場合、Nginx は書き換えモジュール機能を使用できません. Nginx の書き換えモジュール機能は、エンタープライズ アプリケーションにはほぼ必須です。 (3)
ライブラリには多くの圧縮および解凍方法が用意されています。nginx は zlib を使用して http パッケージのコンテンツを gzip 圧縮するため、zlib ライブラリを Centos にインストールする必要があります。 (4)
は、主要な暗号化アルゴリズム、一般的に使用されるキーと証明書のカプセル化管理機能、SSL プロトコルを含む強力なセキュア ソケット レイヤ暗号化ライブラリであり、テスト用の豊富なアプリケーションを提供します。または他の目的。 nginx は http プロトコルをサポートするだけでなく、https (つまり、SSL プロトコルを介して http を送信する) もサポートするため、OpenSSL ライブラリをインストールする必要があります。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:sql;toolbar:false;">yum -y install gcc gcc-c++ zlib zlib-devel
yum -y install pcre pcre-devel openssl openssl-devel</pre><div class="contentsignin">ログイン後にコピー</div></div>
注: yum インストール方法でインストールされる pcre のバージョンは比較的低いですが、基本的には
基本的な依存関係パッケージを確認してください
## の使用には影響しません。
rpm -qa pcre pcre-devel rpm -qa zlib zlib-devel rpm -qa openssl openssl-devel rpm -qa pcre pcre-devel
2. Nginx
# 这里我们把安装包都放到了/usr/src目录下,便于统一管理 cd /usr/src #切换到软件包目录 wget https://nginx.org/download/nginx-1.14.1.tar.gz #下载nginx源码包 useradd nginx -s /sbin/nologin -M #创建nginx用户用于管理nginx程序 tar zxvf nginx-1.14.1.tar.gz #解压nginx源码包 cd nginx-1.14.1 #预编译 ./configure \ --user=nginx \ --group=nginx \ --prefix=/usr/local/nginx-1.14.1 \ --with-http_v2_module \ --with-http_ssl_module \ --with-http_stub_status_module make && make install #编译 和 安装 cd /usr/local ln -s nginx-1.14.1 nginx #创建nginx的软链接
--prefix=PATH #设置安装路劲 --user=USER #进程用户权限 --group=GROUP #进程用户组权限 --with-http_stub_status_module #激活状态信息 --with-http_ssl_module #激活ssl功能
3. 環境変数の構成#
vim /etc/profile export PATH=/usr/local/nginx/sbin:$PATH source /etc/profile
vim /etc/rc.local
# Nginx开机自启
/usr/local/nginx/sbin/nginx &
/usr/local/nginx/sbin/nginx -t # 检查Nginx配置语法是否有误
/usr/local/nginx/sbin/nginx #启动
/usr/local/nginx/sbin/nginx -s stop #立即停止
/usr/local/nginx/sbin/nginx -s quit #平滑停止
/usr/local/nginx/sbin/nginx -s reload #重载配置
/usr/local/nginx/sbin/nginx -s reopen #重开日志
このコマンドを使用して、誰がポート 80 を占有しているかを確認できます。
lsof -i :80
このコマンドを認識できない場合は、インストールする必要があります lsof
sudo yum install lsof
6. ファイアウォールをオフにします
CentOS6: service iptables stop 临时关闭 chkconfig --level 2345 iptables off 永久关闭 CentOS7: systemctl stop firewalld.service #令关闭防火墙 systemctl disable firewalld.service #关闭防火墙开机自启动 通过浏览器输入IP测试是否成功
3: MySQL のインストール
#1. 依存関係のインストール
##(1)cmake は、新しいバージョンの MySQL (インストールする必要があります)sudo yum install gcc gcc-c++ cmake ncurses-devel
sudo yum install perl perl-devel autoconf
useradd -s /sbin/nologin -M mysql # 添加MySQL用户 wget https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.42.tar.gz tar zxvf mysql-5.6.42.tar.gz cd mysql-5.6.42 cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.6.42 \ -DMYSQL_UNIX_ADDR=/usr/local/mysql-5.6.42/tmp/mysql.sock \ -DMYSQL_DATADIR=/usr/local/mysql-5.6.42/data \ -DDEFAULT_CHARSET=utf8mb4 \ -DDEFAULT_COLLATION=utf8mb4_general_ci \ -DWITH_EXTRA_CHARSETS=all \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DWITH_INNODB_MEMCACHED=1 \ -DWITH_DEBUG=OFF \ -DWITH_ZLIB=bundled \ -DENABLED_LOCAL_INFILE=1 \ -DENABLED_PROFILING=ON \ -DMYSQL_MAINTAINER_MODE=OFF \ -DMYSQL_TCP_PORT=3306 make && make install
cd /usr/local/mysql-5.6.42 chown mysql.mysql /usr/local/mysql-5.6.42/data mkdir tmp chown mysql.mysql /usr/local/mysql-5.6.42/tmp rm -f /etc/my.cnf cp support-files/my-default.cnf /etc/my.cnf scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql
4.デーモン プロセスに参加
cd /usr/local ln -s mysql-5.6.42 mysql cd /usr/local/mysql cp support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld
vim /etc/profile export PATH=/usr/local/mysql/bin:$PATH source /etc/profile
service mysqld start mysql -u root -p #第一次登陆不需要密码,回车即可 set password for root@localhost = password('root'); #修改密码
四:安装PHP
1.安装依赖
sudo yum install gcc gcc-c++ zip unzip libxml2 libxml2-devel curl-devel autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel gd-devel bzip2 bzip2-devel
2.编译安装PHP
cd /usr/src wget http://hk1.php.net/get/php-7.2.12.tar.gz/from/this/mirror -O php-7.2.12.tar.gz tar zxvf php-7.2.12.tar.gz cd php-7.2.12 ./configure \ --prefix=/usr/local/php-7.2.12 \ --enable-fpm \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --with-zlib \ --enable-mysqlnd \ --with-pdo-mysql=mysqlnd \ --with-mysqli=mysqlnd \ --with-mysql-sock=/usr/local/mysql/tmp/mysql.sock \ --with-gd \ --with-png-dir \ --with-jpeg-dir \ --with-freetype-dir \ --with-iconv-dir \ --with-openssl \ --with-curl \ --enable-bcmath \ --enable-mbstring \ --enable-static \ --enable-zip \ --enable-sockets \ --enable-xml make && make install
3.PHP配置
cd /usr/local ln -s php-7.2.12 php cp /usr/src/php-7.2.12/php.ini-development /usr/local/php-7.2.12/lib/php.ini vim /usr/local/php/lib/php.ini date.timezone = PRC # 修改时区(大约在932行) expose_php = Off # 避免PHP信息暴露在http头中(大约369行) display_errors = Off# 生产环境设置为off,开发环境就设置为On,便于调试 说明:设置了dispaly_errors为off后,需要在php-fpm.conf中开启错误日志记录路径error_log = log/php-fpm.log cd php cp etc/php-fpm.conf.default etc/php-fpm.conf cd /usr/local/php/etc/php-fpm.d/ cp www.conf.default www.conf # 管理PHP-FPM vim /usr/local/php/etc/php-fpm.conf pid = run/php-fpm.pid error_log = log/php-fpm.log #24行这个在php.ini设置display_errors = Off时启用 向进程发送信号,就可以完成进程管理 停止: kill -INT `cat /usr/local/php/var/run/php-fpm.pid` 平滑停止: kill -QUIT `cat /usr/local/php/var/run/php-fpm.pid` 重启:kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` 重新打开日志:kill -USR1 `cat /usr/local/php/var/run/php-fpm.pid` 如果在编译PHP时指定了--with-mysql=mysqlnd和--with-pdo-mysql=mysqlnd的参数,那么在生产中可能会遇到socket连接问题,解决办法是在php.ini里加入命令: pdo_mysql.default_socket=/usr/local/mysql/tmp/mysql.sock 最好是在编译PHP的时候,指定mysql.socket的位置: --with-mysql-sock=/usr/local/mysql/tmp/mysql.sock
4.配置环境变量
vim /etc/profile export PATH=/usr/local/php/bin:$PATH source /etc/profile
5.配置开机自启
vim /etc/rc.local # PHP-FPM自动启动 /usr/local/php/sbin/php-fpm &
6.启动PHP-FPM
cd /usr/local/php sbin/php-fpm # 启动PHP-FPM ps -e | grep php-fpm
7.配置Nginx和PHP关联
#user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; events { use epoll; worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #隐藏Nginx软件版本号 server_tokens off; #激活tcp_nodelay功能,提高I/O性能 tcp_nodelay on; # 设置读取客户端请求头数据的超时时间。此处的数值为15,其单位是秒,为经验参考值 client_header_timeout 15; # 设置读取客户端请求体的超时时间 client_body_timeout 15; # 指定响应客户端的超时时间 send_timeout 25; # 上传文件大小限制 client_max_body_size 8m; #压缩配置 gzip on; gzip_min_length 1k; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/css text/xml text/plain application/javascript; gzip_vary on; #include extra/gzip.config; #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 logs/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; server { listen 80; server_name www.nginx.com; root html/blog/public; #access_log logs/host.access.log main; location / { index index.php index.html index.htm; if (!-e $request_filename) { rewrite ^/(.*)$ /index.php/$1 last; } } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.*)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } } }
五:CentOS7开机/etc/rc.local不执行问题
CentOS7中,默认开机不再执行/etc/rc.local,查询/etc/rc.local里的内容可以发现如下描述:
#!/bin/bash # THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES # # It is highly advisable to create own systemd services or udev rules # to run scripts during boot instead of using this file. # # In constrast to previous versions due to parallel execution during boot # this script will NOT be run after all other services. # # Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure # that this script will be executed during boot.
翻译过来就是
#这个文件是为了兼容性的问题而添加的。 # #强烈建议创建自己的systemd服务或udev规则来在开机时运行脚本而不是使用这个文件。 # #与以前的版本引导时的并行执行相比较,这个脚本将不会在其他所有的服务后执行。 # #请记住,你必须执行“chmod +x /etc/rc.d/rc.local”来确保确保这个脚本在引导时执行。
所以要解决开机不执行问题,只需要执行下面的命令然后重启服务器。
chmod +x /etc/rc.d/rc.local
完成上面这些步骤,一个LNMP环境就配好啦,重启服务器即可。
以上がPHP環境を構築するにはどうすればよいですか? PHP環境構築(詳細説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。