This is an old revision of the document!
Requirement | Comment |
---|---|
Interpret PHP Scripts | We would like the web server to call the PHP interpreter when a page ending with .php is requested. |
Be able to have access to the MySQL functions of PHP | Since we set up a LEMP server, we need to have a MySQL server installed and accessible from PHP. |
Modify the expiry date of http headers to encourage caching | We want files that does not change (e.g. css or images) to be cached on the client's side to make the client's experience more pleasant |
Enable rewrite rules in CakePHP for pretty URL's | CakePHP makes use of the .htaccess files in Apache to enable pretty URLs. Since Nginx does not support .htaccess files, we need to change Nginx to behave in the same way. |
ip a
sudo vi /etc/netplan/50-cloud-init.yaml
# This file is generated from information provided by # the datasource. Changes to it will not persist across an instance. # To disable cloud-init's network configuration capabilities, write a file # /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following: # network: {config: disabled} network: version: 2 ethernets: enp0s3: addresses: [] dhcp4: true optional: true enp0s8: addresses: [] dhcp4: true optional: true
sudo netplan --debug apply
ip addr #Feedback contains 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:fe:57:09 brd ff:ff:ff:ff:ff:ff inet 192.168.1.111/24 brd 192.168.1.255 scope global dynamic enp0s3 valid_lft 255675sec preferred_lft 255675sec inet6 fe80::a00:27ff:fefe:5709/64 scope link valid_lft forever preferred_lft forever 3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 08:00:27:8c:d3:32 brd ff:ff:ff:ff:ff:ff inet6 fe80::a00:27ff:fe8c:d332/64 scope link valid_lft forever preferred_lft forever
sudo systemctl stop apache2.service sudo apt-get remove apache2
# Get the latest package lists sudo apt-get update # Update the system to the latest sudo apt-get upgrade
sudo apt-get install language-pack-en-base
sudo apt-get install nginx
sudo systemctl stop nginx.service sudo systemctl start nginx.service
sudo apt-get install php-fpm sudo systemctl enable php7.4-fpm sudo systemctl start php7.4-fpm
sudo vi /etc/nginx/sites-enabled/default
#add index.php
index index.php index.html index.htm;
# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { include snippets/fastcgi-php.conf; # # # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # # With php-cgi (or other tcp sockets): # fastcgi_pass 127.0.0.1:9000; }
# deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; }
sudo systemctl reload nginx.service
sudo vi /usr/share/nginx/html/test.php
<?php phpinfo(); ?>
sudo apt-get install mysql-server php-mysql sudo systemctl enable mysql
sudo vi /etc/mysql/conf.d/disable_strict_mode.cnf
[mysqld] sql_mode=IGNORE_SPACE,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
sudo systemctl restart mysql.service
sudo vi /etc/nginx/sites-available/default
location ~ ^/cake2/.+\.(jpg|jpeg|gif|png|ico|js|css)$ { rewrite ^/cake2/rd_cake/webroot/(.*)$ /cake2/rd_cake/webroot/$1 break; rewrite ^/cake2/rd_cake/(.*)$ /cake2/rd_cake/webroot/$1 break; access_log off; expires max; add_header Cache-Control public; } location ~ ^/cake3/.+\.(jpg|jpeg|gif|png|ico|js|css)$ { rewrite ^/cake3/rd_cake/webroot/(.*)$ /cake3/rd_cake/webroot/$1 break; rewrite ^/cake3/rd_cake/(.*)$ /cake3/rd_cake/webroot/$1 break; access_log off; expires max; add_header Cache-Control public; }
sudo systemctl reload nginx.service
sudo apt-get install php-cli php-mysql php-gd php-curl php-xml php-mbstring php-intl
sudo cp 2.10.19.tar.gz /usr/share/nginx/html cd /usr/share/nginx/html sudo tar -xzvf 2.10.19.tar.gz sudo ln -s ./cakephp-2.10.19 ./cake2
sudo systemctl reload php7.2-fpm.service
sudo apt-get install subversion
cd /usr/share/nginx/html/cake2 sudo svn checkout svn://dvdwalt@svn.code.sf.net/p/radiusdesk/code/trunk/rd_cake ./rd_cake
sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/tmp sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/Locale sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/flags sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/nas sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/realms sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/dynamic_details sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/img/dynamic_photos sudo chown -R www-data. /usr/share/nginx/html/cake2/rd_cake/webroot/files/imagecache
cd /usr/share/nginx/html/ sudo svn checkout svn://dvdwalt@svn.code.sf.net/p/radiusdesk/code/trunk/cake3 ./cake3
sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/tmp sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/logs sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/img/realms sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/img/dynamic_details sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/img/dynamic_photos sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/img/access_providers sudo chown -R www-data. /usr/share/nginx/html/cake3/rd_cake/webroot/files/imagecache
sudo su mysql -u root create database rd; GRANT ALL PRIVILEGES ON rd.* to 'rd'@'127.0.0.1' IDENTIFIED BY 'rd'; GRANT ALL PRIVILEGES ON rd.* to 'rd'@'localhost' IDENTIFIED BY 'rd'; exit;
sudo mysql -u root rd < /usr/share/nginx/html/cake3/rd_cake/setup/db/rd.sql
sudo vi /etc/nginx/sites-enabled/default
location /cake2/rd_cake { rewrite ^/cake2/rd_cake/(.*)$ /cake2/rd_cake/webroot/$1 break; try_files $uri $uri/ /cake2/rd_cake/webroot/index.php?q=$uri&$args; } location /cake3/rd_cake { rewrite ^/cake3/rd_cake(.+)$ /cake3/rd_cake/webroot$1 break; try_files $uri $uri/ /cake3/rd_cake/index.php$is_args$args; }
sudo systemctl reload nginx.service
cd /usr/share/nginx/html/ sudo svn checkout svn://dvdwalt@svn.code.sf.net/p/radiusdesk/code/trunk/rd ./rd
cd /usr/share/nginx/html/ sudo svn checkout svn://svn.code.sf.net/p/radiusdesk/code/extjs ./ sudo mv ext-6-2-sencha_cmd.tar.gz ./rd cd /usr/share/nginx/html/rd sudo tar -xzvf ext-6-2-sencha_cmd.tar.gz
sudo cp /usr/share/nginx/html/cake2/rd_cake/Setup/Cron/rd /etc/cron.d/