So kompilieren und installieren Sie php5.6.31: 1. Epel-Quelle hinzufügen und php-5.6.31 herunterladen; 2. Das Installationspaket entpacken und installieren; 4. php-fpm starten; 5. Bearbeiten Sie die Nginx-Konfigurationsdatei und starten Sie den Nginx-Dienst neu.
Die Betriebsumgebung dieses Artikels: CentOS 7-System, PHP5.6.31-Version, DELL G3-Computer
Wie kompiliere und installiere ich PHP5.6.31?
CentOS 7 Kompilieren und installieren Sie PHP5.6.31
Da sich bereits Nginx und MySQL auf dem Server befinden, habe ich mich für die Kombination PHP+Nginx+MySQL entschieden , weil ich mit Linux und PHP nicht vertraut bin, aber ich weiß nicht, wie PHP mit Nginx und MySQL zusammenhängt. Ich bin auf verschiedene Gründe gestoßen (entweder wurde PHP falsch installiert oder das Paket wurde nicht installiert). Ich habe viel Zeit damit verbracht, später nach der Bereitstellung festzustellen, dass diese drei separat installiert werden müssen (nun ~ ~ kann es zusammen installiert werden), Sie müssen nach der Installation nur PHP konfigurieren und Nginx (mit PHP verknüpft) und Sie konfigurieren kann es direkt ausführen. Solange MySQL aktiviert ist und die Verbindungsdatenbank im PHP-Projekt konfiguriert ist, können Sie eine direkte Verbindung herstellen. Dieser Artikel zielt also hauptsächlich auf die Installation von PHP ab.
In Bezug auf die Installation von Nginx und MySQL müssen Sie einige Linux-Entwicklungsbibliotheken installieren, bevor Sie mit der Installation beginnen. Sie sind alle in den Referenzlinks aufgeführt.
Dieser Artikel bezieht sich hauptsächlich auf diesen Link-Blog: https://www.cnblogs.com/flower-tree/p/7562101.html
php-Version: 5.6.31
nginx-Version: 1.7.3
MySQL-Version: 5.6.62
nginx selbst kann PHP nicht verarbeiten, es ist nur ein WEB-Server. Wenn eine Anfrage empfangen wird, wird sie, wenn es sich um eine PHP-Anfrage handelt, zur Verarbeitung an den PHP-Interpreter gesendet Das Ergebnis wird an den Client zurückgegeben.
nginx sendet die Anfrage im Allgemeinen zur Verarbeitung an den Fastcgi-Verwaltungsprozess. Der Fastcgi-Verwaltungsprozess wählt den CGI-Unterprozess aus, um das Ergebnis zu verarbeiten, und gibt es an Nginx zurück.
Was ist PHP-FPM? PHP-FPM ist ein FASTCGI-Manager für PHP. Die neue Version verfügt über eine bessere PHP-Prozessverwaltung, kann Speicher und Prozesse effektiv steuern und PHP-Konfigurationen reibungslos neu laden. Bei der Konfiguration können Sie php-fpm mit dem Parameter -enable-fpm aktivieren. Weitere Informationen zu fastcgi und seiner Beziehung zu php-fpm finden Sie unter dem Link https://segmentfault.com/. q/1010000000256516 ) Entpacken Sie das Installationspaket nach /usr/local/src
rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum install gcc bison bison-devel zlib-devel libmcrypt-devel mcrypt mhash-devel openssl-devel libxml2-devel libcurl-devel bzip2-devel readline-devel libedit-devel sqlite-develyum -y install gcc gcc-c++ glibcyum -y install libmcrypt-devel mhash-devel libxslt-devel \ libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel \ zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel \ ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel \ krb5 krb5-devel libidn libidn-devel openssl openssl-devel
cd /usr/local/srctar -zvxf php-5.6.31.tar.gz
Über die PHP-Konfiguration1. Stellen Sie Konfigurationsdateien für PHP bereit. fpm-Konfigurationsdateicd php-5.6.31./configure --prefix=/usr/local/php --enable-fpm --with-mcrypt \--enable-mbstring --enable-pdo --with-curl --disable-debug --disable-rpath \--enable-inline-optimization --with-bz2 --with-zlib --enable-sockets \--enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex \--with-mhash --enable-zip --with-pcre-regex --with-mysql --with-mysqli \--with-gd --with-jpeg-dir --with-freetype-dir --enable-calendarmake && make install
Wenn der www-Benutzer nicht existiert, fügen Sie zuerst den www-Benutzer hinzu (standardmäßig wird der Benutzer „Nobody“ ausgeführt)CentOS 中下载php: wget http://php.net/get/php-5.6.30.tar.gz/from/this/mirror
„Die gesuchte Seite ist vorübergehend nicht verfügbar. Bitte versuchen Sie es später erneut“
Änderncp php.ini-production /usr/local/php/etc/php.ini
Ausführen
cd /usr/local/phpcp etc/php-fpm.conf.default etc/php-fpm.conf vim etc/php-fpm.conf
Verwenden Sie den folgenden Befehl, um Positiv zu überprüfen (wenn in der Ausgabe dieses Befehls mehrere PHP-FPM-Prozesse vorhanden sind, bedeutet dies, dass der Start erfolgreich war):
groupadd www useradd -g www www
Das Ergebnis ist wie folgt:
3. Integration von Nginx und PHP-FPM
Nginx-Konfigurationsdatei bearbeitenpm.max_children = 150
pm.start_servers = 8
pm.min_spare_servers = 5
pm.max_spare_servers = 10
pid = /usr/local/php/var/run/php-fpm.pid
/usr/local/php/sbin/php-fpm
Alles, was wir zum Ändern der Konfiguration benötigen, ist der Teil
. Wechseln Sie in den VIM-Bearbeitungsmodus oder verwenden Sie FlashFXP, um die Konfigurationsdatei auf dem Desktop freizugeben und Änderungen vorzunehmen. Es sind nur drei Änderungen erforderlichps aux | grep php-fpm
vim /usr/local/nginx/conf/nginx.conf
Wie bereits erwähnt, ist /usr/share/nginx/html das Stammverzeichnis der Nginx-Website. In diesem Verzeichnis können wir ein PHP-Testskript erstellen.
#phpinfo.php ist der Name der Datei, die ich erstellen möchte.
# nginx运行的用户名 user nginx; # nginx启动进程,通常设置成和cpu的数量相等,这里为自动 worker_processes auto; # errorlog文件位置 error_log /var/log/nginx/error.log; # pid文件地址,记录了nginx的pid,方便进程管理 pid /run/nginx.pid; # Load dynamic modules. See /usr/share/nginx/README.dynamic. # 用来加载其他动态模块的配置 include /usr/share/nginx/modules/*.conf; # 工作模式和连接数上限 events { # 每个worker_processes的最大并发链接数 # 并发总数:worker_processes*worker_connections worker_connections 1024; } # 与提供http服务相关的一些配置参数类似的还有mail http { # 设置日志的格式 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记录访问的用户、页面、浏览器、ip和其他的访问信息 access_log /var/log/nginx/access.log main; # 这部分下面会单独解释 # 设置nginx是否使用sendfile函数输出文件 sendfile on; # 数据包最大时发包(使用Nagle算法) tcp_nopush on; # 立刻发送数据包(禁用Nagle算法) tcp_nodelay on; # 链接超时时间 keepalive_timeout 65; # 这个我也不清楚... types_hash_max_size 2048; # 引入文件扩展名与文件类型映射表 include /etc/nginx/mime.types; # 默认文件类型 default_type application/octet-stream; # Load modular configuration files from the /etc/nginx/conf.d directory. # See http://nginx.org/en/docs/ngx_core_module.html#include # for more information. include /etc/nginx/conf.d/*.conf; # http服务上支持若干虚拟主机。 # 每个虚拟主机一个对应的server配置项 # 配置项里面包含该虚拟主机相关的配置。 server { # 端口 listen 80 default_server; listen [::]:80 default_server; # 访问的域名 server_name _; # 默认网站根目录(www目录) root /usr/share/nginx/html; # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; # 默认请求 location / { } # 错误页(404) error_page 404 /404.html; location = /40x.html { } # 错误页(50X) error_page 500 502 503 504 /50x.html; location = /50x.html { } } }
Nginx und PHP wurden konfiguriert.
4. Gründe für Fehler im Installationsprozess
Als ich dem Installationsprozess gefolgt bin, ist ein Fehler aufgetreten: mcrypt.h nicht gefunden.
Dies liegt daran, dass die Pakete php-mcrypt, libmcrypt und libmcrypt-devel nicht installiert sind Fehlende Bibliotheken oder Pakete können sofort installiert werden.
Empfohlenes Lernen: „PHP-Video-Tutorial“
Das obige ist der detaillierte Inhalt vonSo kompilieren und installieren Sie php5.6.31. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!