Learn How To Install PHP 7.3 on an Arch Linux Webserver
Table of Contents
Prerequisites
https://www.itweb.services/tutorials/linux-guides/installing-2019-arch-linux-on-a-itweb.services-server”>this article.)
https://www.itweb.services/tutorials/linux-guides/how-to-install-nginx-1-14-on-arch-linux”>Nginx
- Commands required to be ran as root are prefixed by
#
. The recommended way to run commands as root is to, as a regular user, prefix each of them withsudo
.
Install PHP 7.3 On Your Webserver
Install PHP and FastCGI for PHP:
# pacman -S php-fpm
Visit PHP’s timezone list
Set your timezone. For example, if you chose the category “America” and wanted to use “New_York”, edit /etc/php/php.ini
and set the following:
date.timezone = America/New_York
Start FastCGI for PHP, and make it start after every boot:
# systemctl enable --now php-fpm
Configure PHP for your webserver.
For Apache
Create the file /etc/httpd/conf/extra/php-fpm.conf
, with the following contents. Make sure to copy this exactly as-is; a common error is putting spaces around the pipe character, but this is not a shell command, and there can be no spaces:
DirectoryIndex index.php index.html
<FilesMatch .php$>
SetHandler "proxy:unix:/run/php-fpm/php-fpm.sock|fcgi://localhost/"
</FilesMatch>
Allow Apache to use FastCGI by editing /etc/httpd/conf/httpd.conf
, and add the following to the end of the LoadModule list:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
To allow using .php
files on all websites hosted by Apache, edit /etc/httpd/conf/httpd.conf
, and add this to the end. If you’re running multiple host directories; for example, virtual hosts, or separate HTTP/HTTPS directories; and you want to only allow .php
files on some of them, edit their configuration files. Within the VirtualHost
block, add the following:
Include conf/extra/php-fpm.conf
Finally, restart Apache:
# systemctl restart httpd
For Nginx
Allow Nginx to use FastCGI for PHP by creating the file /etc/nginx/php.conf
with the following contents:
# Correctly handle request like /test.php/foo/blah.php or /test.php/
fastcgi_split_path_info ^(.+?.php)(/.*)$;
try_files $uri $document_root$fastcgi_script_name =404;
# Mitigate <nowiki>https://httpoxy.org/</nowiki> vulnerabilities
fastcgi_param HTTP_PROXY "";
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
Allow Nginx to use FastCGI by editing /etc/nginx/nginx.conf
, and to every server block you want to use PHP with, add the following. Alternatively, if you are using virtual hosts, edit each host’s configuration file:
location ~ .php$ {
root /usr/share/nginx/html/;
include php.conf;
}
Restart Nginx:
# systemctl restart nginx
Test PHP
Within the appropriate directory, create test.php
with the following contents:
<?php phpinfo(); ?>
In a web browser, visit http://YOUR-SERVER-WEB-ADDRESS-OR-IP/test.php
, and you will see a webpage with your PHP version and configuration.
Remember to delete the test.php
test file you just created.
Need help?
Do you need help setting up this on your own service?
Please contact us and we’ll provide you the best possible quote!