Difference between revisions of "Appendices:ApachePHP"

From Wiki_dbSQWare
Jump to: navigation, search
(Created page with "Work In Progress")
 
m (Reload des services)
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Work In Progress
 
Work In Progress
 +
 +
The easiest way is to install the standard packages from your OS distribution, but this requires connecting to a repo.<br>
 +
The httpd daemon can also be started with a user other than root, provided you don't use port 80 for the site.<br>
 +
This example is an installation of Apache and PHP 8.2.18 on Rocky Linux 9.<br>
 +
<br>
 +
==Installing packages==
 +
 +
Installing Apache Web Server with dnf :
 +
<pre>
 +
[root@vmsqwarebox ~]# dnf -y update
 +
[root@vmsqwarebox ~]# dnf install httpd mod_ssl -y
 +
</pre>
 +
<br>
 +
 +
Start and enable Apache :
 +
<pre>
 +
systemctl start httpd
 +
systemctl enable httpd
 +
systemctl status httpd
 +
 +
## If firewall is active :
 +
# firewall-cmd --zone=public --permanent --add-service=http
 +
# firewall-cmd --zone=public --permanent --add-service=https
 +
# firewall-cmd --reload
 +
</pre>
 +
<br>
 +
 +
Test to see if your site is responding :
 +
<pre>
 +
http://192.168.231.28/
 +
</pre>
 +
<br>
 +
 +
Repo activation and installing PHP 8.2.18 :
 +
<pre>
 +
#To add EPEL and REMI Repository.
 +
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
 +
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
 +
 +
#To install yum utilities.
 +
dnf -y install yum-utils
 +
 +
#To enable php 8.2 Remi repository.
 +
dnf module reset php
 +
dnf module install php:remi-8.2
 +
 +
# To list the available PHP version:
 +
dnf module list php
 +
 +
Last metadata expiration check: 0:01:14 ago on Mon 15 Apr 2024 10:10:57 AM EDT.
 +
Rocky Linux 9 - AppStream
 +
Name                                  Stream                                        Profiles                                                        Summary
 +
php                                    8.1                                            common [d], devel, minimal                                      PHP scripting language
 +
php                                    8.2                                            common [d], devel, minimal                                      PHP scripting language
 +
 +
Remi's Modular repository for Enterprise Linux 9 - x86_64
 +
Name                                  Stream                                        Profiles                                                        Summary
 +
php                                    remi-7.4                                      common [d], devel, minimal                                      PHP scripting language
 +
php                                    remi-8.0                                      common [d], devel, minimal                                      PHP scripting language
 +
php                                    remi-8.1                                      common [d], devel, minimal                                      PHP scripting language
 +
php                                    remi-8.2 [e]                                  common [d] [i], devel, minimal                                  PHP scripting language
 +
php                                    remi-8.3                                      common [d], devel, minimal                                      PHP scripting language
 +
 +
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
 +
 +
# Installing PHP
 +
dnf install -y php php-pdo php-mysqlnd php-ldap php-zip
 +
 +
root@vmsqwarebox:/root # php -v
 +
PHP 8.2.18 (cli) (built: Apr  9 2024 18:46:23) (NTS gcc x86_64)
 +
Copyright (c) The PHP Group
 +
Zend Engine v4.2.18, Copyright (c) Zend Technologies
 +
    with Zend OPcache v8.2.18, Copyright (c), by Zend Technologies
 +
</pre>
 +
<br>
 +
 +
Test to see if your site is responding and is setup with PHP 8.2 :
 +
<pre>
 +
systemctl restart httpd
 +
 +
cat <<EOFCAT >/var/www/html/phpinfo.php
 +
<?php
 +
 +
phpinfo();
 +
 +
?>
 +
EOFCAT
 +
 +
http://192.168.230.22/phpinfo.php
 +
 +
=> PHP Version 8.2.18
 +
</pre>
 +
<br>
 +
 +
==Changes php.ini + php.conf==
 +
 +
Change the file /etc/php.ini
 +
<pre>
 +
[root@vmsqwarebox ~]# cp -p /etc/php.ini /etc/php.ini.org
 +
[root@vmsqwarebox ~]# vi /etc/php.ini
 +
</pre>
 +
<br>
 +
 +
In principle, the only changes to be made are the following :
 +
<pre>
 +
;session.save_path = "/tmp"
 +
memory_limit = 512M
 +
</pre>
 +
<br>
 +
 +
Change the file /etc/httpd/conf.d/php.conf
 +
<pre>
 +
[root@vmsqwarebox ~]# cp -p /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.org
 +
[root@vmsqwarebox ~]# vi /etc/httpd/conf.d/php.conf
 +
</pre>
 +
<br>
 +
 +
In principle, the only changes to be made are the following :
 +
<pre>
 +
#php_value session.save_path    "/var/lib/php/session"
 +
php_value session.save_path    "/var/tmp"
 +
</pre>
 +
<br>
 +
 +
==Changes httpd.conf==
 +
 +
Change the file /etc/httpd/conf/httpd.conf
 +
<pre>
 +
[root@vmsqwarebox ~]# cp -p /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
 +
[root@vmsqwarebox ~]# vi /etc/httpd/conf/httpd.conf
 +
</pre>
 +
<br>
 +
 +
In principle, the only changes to be made are the following :
 +
<pre>
 +
User dbsqware
 +
Group dba
 +
</pre>
 +
<br>
 +
 +
==Changes for /etc/php-fpm.d/www.conf==
 +
 +
Change the file /etc/php-fpm.d/www.conf
 +
<pre>
 +
[root@vmsqwarebox ~]# cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org
 +
[root@vmsqwarebox ~]# vi /etc/php-fpm.d/www.conf
 +
</pre>
 +
<br>
 +
 +
In principle, the only changes to be made are the following :
 +
<pre>
 +
user = dbsqware
 +
group = dba
 +
;listen.acl_users = apache,nginx
 +
;listen.acl_groups =
 +
listen.owner = dbsqware
 +
listen.group = dba
 +
listen.mode = 0660
 +
listen.allowed_clients =
 +
php_value[session.save_path]    = /var/tmp
 +
php_admin_value[memory_limit] = 512M
 +
</pre>
 +
<br>
 +
 +
==Changes for /usr/lib/systemd/system/php-fpm.service==
 +
Change the file /usr/lib/systemd/system/php-fpm.service
 +
<pre>
 +
[root@vmsqwarebox ~]# cp -p /usr/lib/systemd/system/php-fpm.service /usr/lib/systemd/system/php-fpm.service.org
 +
[root@vmsqwarebox ~]# vi /usr/lib/systemd/system/php-fpm.service
 +
</pre>
 +
<br>
 +
 +
In principle, the only changes to be made are the following :
 +
<pre>
 +
[Service]
 +
User=dbsqware
 +
Group=dba
 +
</pre>
 +
<br>
 +
 +
==Reload==
 +
 +
<pre>
 +
systemctl daemon-reload
 +
 +
chown -R dbsqware:dba /var/log/php-fpm /var/log/httpd
 +
chmod -R g+rw /var/log/php-fpm /var/log/httpd
 +
chmod -R g+s /var/log/php-fpm /var/log/httpd
 +
 +
systemctl is-enabled php-fpm
 +
 +
systemctl enable --now php-fpm
 +
 +
systemctl start php-fpm
 +
systemctl start httpd
 +
</pre>
 +
<br>

Latest revision as of 17:03, 7 April 2025

Work In Progress

The easiest way is to install the standard packages from your OS distribution, but this requires connecting to a repo.
The httpd daemon can also be started with a user other than root, provided you don't use port 80 for the site.
This example is an installation of Apache and PHP 8.2.18 on Rocky Linux 9.

Installing packages

Installing Apache Web Server with dnf :

[root@vmsqwarebox ~]# dnf -y update
[root@vmsqwarebox ~]# dnf install httpd mod_ssl -y


Start and enable Apache :

systemctl start httpd
systemctl enable httpd
systemctl status httpd

## If firewall is active :
# firewall-cmd --zone=public --permanent --add-service=http
# firewall-cmd --zone=public --permanent --add-service=https
# firewall-cmd --reload


Test to see if your site is responding :

http://192.168.231.28/


Repo activation and installing PHP 8.2.18 :

#To add EPEL and REMI Repository.
dnf -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm
dnf -y install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

#To install yum utilities.
dnf -y install yum-utils

#To enable php 8.2 Remi repository.
dnf module reset php
dnf module install php:remi-8.2

# To list the available PHP version:
dnf module list php

Last metadata expiration check: 0:01:14 ago on Mon 15 Apr 2024 10:10:57 AM EDT.
Rocky Linux 9 - AppStream
Name                                   Stream                                         Profiles                                                         Summary
php                                    8.1                                            common [d], devel, minimal                                       PHP scripting language
php                                    8.2                                            common [d], devel, minimal                                       PHP scripting language

Remi's Modular repository for Enterprise Linux 9 - x86_64
Name                                   Stream                                         Profiles                                                         Summary
php                                    remi-7.4                                       common [d], devel, minimal                                       PHP scripting language
php                                    remi-8.0                                       common [d], devel, minimal                                       PHP scripting language
php                                    remi-8.1                                       common [d], devel, minimal                                       PHP scripting language
php                                    remi-8.2 [e]                                   common [d] [i], devel, minimal                                   PHP scripting language
php                                    remi-8.3                                       common [d], devel, minimal                                       PHP scripting language

Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled

# Installing PHP
dnf install -y php php-pdo php-mysqlnd php-ldap php-zip

root@vmsqwarebox:/root # php -v
PHP 8.2.18 (cli) (built: Apr  9 2024 18:46:23) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.2.18, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.18, Copyright (c), by Zend Technologies


Test to see if your site is responding and is setup with PHP 8.2 :

systemctl restart httpd

cat <<EOFCAT >/var/www/html/phpinfo.php
<?php

phpinfo();

?>
EOFCAT

http://192.168.230.22/phpinfo.php

=> PHP Version 8.2.18


Changes php.ini + php.conf

Change the file /etc/php.ini

[root@vmsqwarebox ~]# cp -p /etc/php.ini /etc/php.ini.org
[root@vmsqwarebox ~]# vi /etc/php.ini


In principle, the only changes to be made are the following :

;session.save_path = "/tmp"
memory_limit = 512M


Change the file /etc/httpd/conf.d/php.conf

[root@vmsqwarebox ~]# cp -p /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf.org
[root@vmsqwarebox ~]# vi /etc/httpd/conf.d/php.conf


In principle, the only changes to be made are the following :

#php_value session.save_path    "/var/lib/php/session"
php_value session.save_path    "/var/tmp"


Changes httpd.conf

Change the file /etc/httpd/conf/httpd.conf

[root@vmsqwarebox ~]# cp -p /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf.org
[root@vmsqwarebox ~]# vi /etc/httpd/conf/httpd.conf


In principle, the only changes to be made are the following :

User dbsqware
Group dba


Changes for /etc/php-fpm.d/www.conf

Change the file /etc/php-fpm.d/www.conf

[root@vmsqwarebox ~]# cp -p /etc/php-fpm.d/www.conf /etc/php-fpm.d/www.conf.org
[root@vmsqwarebox ~]# vi /etc/php-fpm.d/www.conf


In principle, the only changes to be made are the following :

user = dbsqware
group = dba
;listen.acl_users = apache,nginx
;listen.acl_groups =
listen.owner = dbsqware
listen.group = dba
listen.mode = 0660
listen.allowed_clients =
php_value[session.save_path]    = /var/tmp
php_admin_value[memory_limit] = 512M


Changes for /usr/lib/systemd/system/php-fpm.service

Change the file /usr/lib/systemd/system/php-fpm.service

[root@vmsqwarebox ~]# cp -p /usr/lib/systemd/system/php-fpm.service /usr/lib/systemd/system/php-fpm.service.org
[root@vmsqwarebox ~]# vi /usr/lib/systemd/system/php-fpm.service


In principle, the only changes to be made are the following :

[Service]
User=dbsqware
Group=dba


Reload

systemctl daemon-reload

chown -R dbsqware:dba /var/log/php-fpm /var/log/httpd
chmod -R g+rw /var/log/php-fpm /var/log/httpd
chmod -R g+s /var/log/php-fpm /var/log/httpd

systemctl is-enabled php-fpm

systemctl enable --now php-fpm

systemctl start php-fpm
systemctl start httpd