Topic List
brew services list brew services restart nginx /opt/homebrew/opt/nginx/bin/nginx -g daemon off; brew install shivammathur/php/php@7.4 brew reinstall php@7.4 sudo lsof -i -n -P|grep php-fpm brew services start php@8.2
แก้ไขไฟล์ opt/homebrew/etc/nginx/nginx.conf
location / { root /path/to/www; try_files $uri $uri/ /index.php?$uri&$args; }
Install multiple PHP version
brew tap shivammathur/php
เลือกมาสักเวอร์ชั่น
brew install shivammathur/php/php@5.6 brew install shivammathur/php/php@7.0 brew install shivammathur/php/php@7.1 brew install shivammathur/php/php@7.2 brew install shivammathur/php/php@7.3 brew install shivammathur/php/php@7.4 brew install shivammathur/php/php@8.0 brew install shivammathur/php/php@8.1 brew install shivammathur/php/php@8.2 brew install shivammathur/php/php@8.3
Mac M1 : Config file อยู่ที่
/opt/homebrew/etc/php/7.0/php.ini /opt/homebrew/etc/php/7.1/php.ini /opt/homebrew/etc/php/7.2/php.ini /opt/homebrew/etc/php/7.3/php.ini /opt/homebrew/etc/php/7.4/php.ini /opt/homebrew/etc/php/8.0/php.ini /opt/homebrew/etc/php/8.1/php.ini /opt/homebrew/etc/php/8.2/php.ini /opt/homebrew/etc/php/8.3/php.ini
แก้ไขไฟล์ php.ini ที่ /opt/homebrew/etc/php/8.0/php-fpm.d/www.conf เปลี่ยน port จาก 9000 เป็น 9080
restart php
brew services start php@8.0
Problem
1.Can't upload jpg/pdf
- Remove folder /opt/homebrew/var/run/nginx
- Create folder /opt/homebrew/var/run/nginx again with user in nginx
ที่มา - Introduction to NGINX
- Install Nginx & Multiple PHP Versions on macOS 12 Monterey
Mount harddisk
Using /dev/disk/by-uuid/:
- Open a terminal.
- Type ls -l /dev/disk/by-uuid/ and press Enter.
- This will display a list of symlinks, where the filename is the UUID and the target is the device it points to (e.g., lrwxrwxrwx 1 root root 10 Jul 12 12:00 1234-5678 -> ../../sda1).
- Identify the UUID you need and then use the corresponding device path (e.g., /dev/sda1) in other commands if needed.
Create user
sudo adduser <username>
Make user to sudoer
sudo adduser <username> sudo
Make user ssh
Step 1 – Installing the Nginx Web Server
sudo apt update sudo apt upgradesudo apt install nginx
sudo nginx -t
Restart nginx
sudo systemctl restart nginx sudo systemctl reload nginx sudo service nginx restart sudo service nginx reload
Enable HTTP/2 in Nginx on Ubuntu
sudo nano /etc/nginx/sites-available/your_domain
listen 443 ssl http2; listen [::]:443 ssl http2 ipv6only=on;
Step 2 – Installing MariaDB to Manage Site Data
sudo apt install mariadb-server sudo mysqlsecureinstallation Switch to unixsocket authentication [Y/n] n sudo mysql mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysqlnative_password BY 'password'; mysql> FLUSH PRIVILEGES;
ปรับแต่ง config
nano /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld] log_slow_query_file = /var/log/mysql/mariadb-slow.log log_slow_query_time = 2<br /> ... innodb_buffer_pool_size = 256M innodb_log_file_size = 128M
ตรวจสอบตารางว่า crash หรือไม่
mariadb-check -u user -p -c database
Step 3 – Installing PHP and Configuring Nginx to Use the PHP Processor => รายละเอียด
ถ้าต้องการถอด php ออก ด้วย
sudo apt-get purge php7.* sudo apt-get autoclean sudo apt-get autoremove
Install php
sudo apt purge php8.* sudo add-apt-repository ppa:ondrej/php sudo apt update && sudo apt-get install ca-certificates apt-transport-https software-properties-common sudo apt install php8.3-fpm php -v php --modules apt install -y php8.3-common php8.3-fpm php8.3-mysql php8.3-redis php8.3-mongodb php8.3-zip php8.3-gd php8.3-mbstring php8.3-cli php8.3-curl php8.3-xml php8.3-bcmath
ปรับ config PHP
เปลี่ยนค่า session.gcprobability, date.timezone, postmaxsize, uploadmax_filesize
nano /etc/php/8.3/fpm/php.ini
session.gc_probability = 1 date.timezone = Asia/Bangkok post_max_size = 64M upload_max_filesize = 64M
แก้ไขค่า php pool
nano /etc/php/8.3/fpm/pool.d/www.conf
pm.max_children = 30 pm.start_servers = 5 pm.min_spare_servers = 3 pm.max_spare_servers = 5
Enabling PHP8.3 on Nginx server
sudo nano /etc/nginx/sites-available/default
location ~ \.php$ { include snippets/fastcgi-php.conf # With php-fpm (or other unix sockets): fastcgi_pass unix:/var/run/php/php8.3-fpm.sock; # With php-cgi (or other tcp sockets): <a class="hashtag" href="/tags/fastcgi">#fastcgi</a>_pass 127.0.0.1:9000; }
index index.php index.html
Restart php
sudo service php8.3-fpm restart
Restart nginx
sudo systemctl restart nginx.service
Install phpmyadmin
apt install phpmyadmin sudo ln -s /usr/share/phpmyadmin /var/www/your_domain/phpmyadmin
Create site config
cd /etc/nginx/sites-available nano domain.confcd /etc/nginx/sites-enabled ln -s ../sites-available/domain.conf domain.conf
Old version
sudo add-apt-repository universe sudo apt install php-fpm php-mysql sudo apt install php8.1-mbstring sudo apt install php8.1-gdphp --version which php whereis php
sudo nano /etc/nginx/sites-available/your_domain
/etc/nginx/sites-available/yourdomain
name your_domain;
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server
location / {
try_files $uri $uri/ /index.php?$uri&$args;
# try_files $uri $uri/ =404;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.2-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
Step 4 - How To Secure Nginx with Let's Encrypt on Ubuntu 22.04
sudo apt remove certbot sudo snap install core; sudo snap refresh core sudo snap install --classic certbot sudo ln -s /snap/bin/certbot /usr/bin/certbot sudo certbot
ติดตั้ง SSL Certificate Filde วิธีการติดตั้ง SSL Certificate บน Nginx Server
Step 5 – ขั้นตอนสุดทัาย - Check List
server { ... listen 443 ssl; # managed by manual sslcertificate /etc/ssl/certs/filename.crt; sslcertificatekey /etc/ssl/certs/filename.key; # sslcertificate_chain /etc/ssl/filename.chain }
config PHP
Then changesudo nano /etc/php/8.3/fpm/php.ini
Then restart phpdate.timezone = Asia/Bangkok
sudo service php8.3-fpm restart
It sets the maximum allowed size of the client request body, specified in the “Content-Length” request header field. Here’s an example of increasing the limit to 50MB in /etc/nginx/nginx.conf file. Set in http block which affects all server blocks (virtual hosts).
nano /etc/nginx/nginx.conf
In each domain config in site-a Set in server block, which affects a particular site/apphttp { ... client_max_body_size 50M; }
nano /etc/nginx/sites-available/domain.conf
Set in location block, which affects a particular directory (uploads) under a site/app.server { ... client_max_body_size 50M; }
Save the file and restart Nginx web server to apply the recent changes using following command.location /uploads { ... client_max_body_size 50M; }<br />
systemctl restart nginx
ถอนการติดตั้ง
หากมีการติดตั้ง apache2 ไว้ก่อน สามารถถอนการติดตั้งด้วย
apt-get purge apache2 apt-get autoremove
กรณีการอัพเกรดจาก Apache มีขั้นตอนของการตรวจสอบ และ ถอดโปรแกรม
uname -a Linux alumni 5.4.0-167-generic <a class="hashtag" href="/tags/184">#184</a>-Ubuntu SMP Tue Oct 31 09:21:49 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 20.04.1 LTS Release: 20.04 apachectl -v Server version: Apache/2.4.41 (Ubuntu) Server built: 2023-10-26T13:54:09 php -v PHP 7.4.3-4ubuntu2.20 (cli) (built: Feb 21 2024 13:54:34) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3-4ubuntu2.20, Copyright (c), by Zend Technologies mysql --version mysql Ver 15.1 Distrib 10.3.39-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2 <a class="hashtag" href="/tags/apt">#apt</a> update <a class="hashtag" href="/tags/apt">#apt</a> list --upgradable<br /> <br /> <br /> add-apt-repository ppa:ondrej/apache2 apt update apt upgrade do-release-upgrade ssh recovery port 1022