Topic List
ติดตั้ง Server ใหม่ของ Ubuntu Server เขียนบันทึกคำสั่งไว้สักหน่อย
Apache Installation
sudo apt update sudo apt upgrade sudo apt install apache2 -y systemctl status apache2 sudo a2dismod ssl sudo a2enmod ssl sudo a2enmod rewrite
Apache config
sudo nano /etc/apache2/sites-available/000-default.conf
เพิ่ม AllowOverride Al
<Directory /home/> Options Indexes FollowSymLinks Options FollowSymLinks AllowOverride All Order allow,deny allow from all Require all granted </Directory>
sudo apt-get install mariadb-server mariadb-client systemctl status mariadbsudo nano /etc/mysql/conf.d/mysqld.cnf sudo systemctl restart mysql
debian : service mysqld restart
กรณีที่ติดตั้ง mariadb แล้วไม่ได้กำหนดรหัสของ root
mysql --versionsystemctl stop mariadb systemctl set-environment MYSQLD_OPTS="--skip-grant-tables --skip-networking" systemctl start mariadb mysql -u root
mysql> FLUSH PRIVILEGES; mysql> SET PASSWORD FOR 'root'@localhost = PASSWORD("newpassword"); mysql> quit
sudo systemctl unset-environment MYSQLD_OPTS sudo systemctl restart mariadb
mysql -u root -p
mysql> CREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password'; mysql> GRANT ALL PRIVILEGES ON * . * TO 'newuser'@'localhost';
#MySql Config
ตรวจสอบว่าควรกำหนดค่า keybuffersize สักเท่าไหร่ดี
SELECT CONCAT(ROUND(KBS/POWER(1024, -> IF(PowerOf1024<0,0,IF(PowerOf1024>3,0,PowerOf1024)))+0.4999), -> SUBSTR(' KMG',IF(PowerOf1024<0,0, -> IF(PowerOf1024>3,0,PowerOf1024))+1,1)) -> recommendedkeybuffersize FROM -> (SELECT LEAST(POWER(2,32),KBS1) KBS -> FROM (SELECT SUM(indexlength) KBS1 -> FROM informationschema.tables -> WHERE engine='MyISAM' AND -> tableschema NOT IN ('information_schema','mysql')) AA ) A, -> (SELECT 2 PowerOf1024) B;
name /etc/my.cnf
<a class="hashtag" href="/tags/MyISAM">#MyISAM</a> key_buffer_size=4096M join_buffer_size=256K # from 140M for row pointers thread_cache_size=40 # from 8 to avoid thread starvation query_cache_limit=8M # from 4M since you have QC turned OFF key_cache_age_threshold=7200 # from 300 seconds to reduce key_reads RPS key_cache_division_limit=50 # from 100 percent for HOT/WARM caches key_cache_block_size=16K # from 1K to evict bigger block when full open_files_limit=30000 # from 1024 to reduce opened_files RPS table_open_cache=10000 # from 407 to reduce opened_tables RPS table_definition_cache=2000 # from 603 to reduce opened_table_definitions RPS max_heap_table_size=48M # from 32M for additional capacity tmp_table_size=48M # from 32M to reduce created_tmp_disk_tables count innodb_io_capacity=1600 # from 200 to allow more IOPS read_rnd_buffer_size=192K # from 256K to reduce handler_read_rnd_next RPS sort_buffer_size=2M # from 256K to reduce sort_merge_passes count <a class="hashtag" href="/tags/Innodb">#Innodb</a> <a class="hashtag" href="/tags/innodb">#innodb</a>_buffer_pool_size = 6144M innodb_log_file_size = 512M innodb_lru_scan_depth=100 # from 1024 to reduce CPU busy every SE$ max_connections = 500 key_buffer_size = 512M
ติดตั้ง PHP => How to install PHP 7.4 on Ubuntu 22.04 LTS Jammy Linux
sudo apt update && sudo apt upgrade sudo apt install software-properties-common sudo add-apt-repository ppa:ondrej/php -y sudo apt install php7.4 sudo apt install php7.4-{cli,common,curl,zip,gd,mysql,xml,mbstring,json,intl} sudo update-alternatives --config php
sudo apt-get install php7.4 php7.4-mysql php-common php7.4-cli php7.4-json php7.4-common php7.4-opcache libapache2-mod-php7.4 sudo nano /etc/php/7.4/fpm/php.ini sudo systemctl restart apache2 sudo systemctl restart mysql wget -r --ask-password ftp://user:example.com/
Install phpMyAdmin
sudo apt install phpmyadmin php-mbstring php-zip php-gd php-json php-curl
Mount volumn จาก server เดิม มาไว้ใน server ใหม่ เพื่อทำการ copy file
sudo apt install sshfs mkdir folder sshfs -p 22 username@example.com:/home/folder/ folder
ใช้งานเสร็จก็ un mount
umount folder
Configuration
ที่มา
- How to install LAMP stack web server on Ubuntu 20.04
- How To Create a New User and Grant Permissions in MySQL
- How to recursively download a folder via FTP on Linux
- How can I disable and enable SSL in Apache
- How To Reset Your MySQL or MariaDB Root Password on Ubuntu 18.04
- How to enable mod_rewrite in apache ubuntu
- How to install PHP 7.4 on Ubuntu 22.04 LTS Jammy Linux
ติดตั้ง Ubuntu Desktop ให้เป็น Server (LAMP)
ผ่านไป 2 ปี ก็ถึงเวลาต้องติดตั้ง Ubuntu ใหม่เสียที คราวนี้เลยถือโอกาสเปลี่ยนเป็น Ubuntu 11.04 64 bit ไปเลย ก็เลยลองมารีวิวการติดตั้ง LAMP บน Ubuntu ใหม่ว่ามีอะไรที่เปลี่ยนแปลงไปบ้าง
หมายเหตุ : การติดตั้งต่อไปนี้ใช้สิทธิ์ของ root ขอให้เข้าสู่สิทธิ์ของ root โดยการเปิด terminal แล้วพิมพ์ sudo su
Install L.A.M.P Stack (Apache, Mysql, PHP) ทีเดียวซะเลย
root@god:/# apt-get install lamp-server^
แล้วก็ลง phpMyAdmin
root@god:/# apt-get install phpmyadmin
เลือก Apache แล้ว YES สำหรับ dbconfig-common.
ติดตั้งเพิ่มเติม
php5-curl
root@god# apt-get install php5-curl
หรือชอบที่จะลงทีละตัว ก็
Install Apache
root@god:/# apt-get install apache2
Enable mod_rewrite
root@god:/# a2enmod rewrite
เปลี่ยน DocumentRoot ของ apache เป็น folder อื่น และเปิดใช้งาน clean url
root@god:/# nano /etc/apache2/sites-available/default
- เปลี่ยนบรรทัด /var/www/ เป็น /my web folder/ จำนวน 2 ตำแหน่ง
- แก้ค่า AllowOverride ของ /my web folder/ จาก None เป็น AllowOverride All
Install PHP
root@god:/# apt-get install php5 libapache2-mod-php5 php5-gd root@god:/# /etc/init.d/apache2 restart
Install MySQL
root@god:/# apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql phpmyadmin root@god:/# /etc/init.d/apache2 restart
หากมีข้อมูลเก่าของ mysql ก็สามารถ copy มาไว้ที่ /var/lib/mysql แล้ว โดยใช้คำสั่ง
root@god:/# cp /media/disk/var/lib/mysql/* /var/lib/mysql/ root@god:/# chown -hR mysql /var/lib/mysql/* root@god:/# chgrp -hR mysql /var/lib/mysql/*
ย้ายข้อมูล mysql ไปไว้ที่อื่น
root@god:/# /etc/init.d/mysql stop root@god:/# mkdir /home/mysql root@god:/# chown -R mysql:mysql /home/mysql root@god:/# cp -r /var/lib/mysql/mysql /home/mysql/ root@god:/# chown -R mysql:mysql /home/mysql/*
แล้วแก้ my.cnf
root@god:/# nano /etc/mysql/my.cnf
หาคำนี้ให้เจอ :
datadir = /var/lib/mysql
แล้วเปลี่ยนเป็นตำแหน่งใหม่ :
datadir = /home/mysql
เสร็จแล้วก็ restart mysql service
root@god:/# /etc/init.d/mysql start Starting MySQL database server mysqld [ OK ]
แล้ว mysql จะทำการสร้างไฟล์ ibdata1, ib_logfile0, อื่น ๆ ขึ้นมาใหม่
ทุกอย่างน่าจะเรียบร้อย แต่ผมไม่สามารถ start mysql ได้ มันค้างอยู่ เลยต้องไปแก้ค่าในไฟล์ /etc/apparmor.d/usr.sbin.mysqld โดยเปลี่ยนค่า /var/lib/mysql ให้เป็น /home/mysql ด้วย
แล้วคราวนี้ก็ทำการ copy ฐานข้อมูลเก่า ๆ มาได้เลย อย่าลืมเปลี่ยน owner/group เป็น mysql ด้วยนะ
ที่มา
- Installing LAMP On Ubuntu For Newbies
- How to move mysql database to another drive or partition
- howtoforge.com
#sudo apt-get install apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert
<a class="hashtag" href="/tags/sudo">#sudo</a> apt-get install libapache2-mod-php5 php5 php5-common php5-curl php5-dev php5-gd php5-idn php-pear php5-imagick php5-imap php5-json php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl
แก้ไขไฟล์ config.inc.php
$cfg['SaveDir']= '/tmp';
เพิ่มบรรทัด
$GLOBALS["saveonserver"]=true;
แล้วจะมีปุ่มให้คลิก Save on server in /tmp/ directory ตอน export
ปล. มีเวลาจะมาอธิบายอย่างละเอียดอีกที
ที่มา : www.planet-source-code.com
To change phpMyAdmin's default cookie login expire time (default is 1800 sec).
Change the $cfg['LoginCookieValidity'] in file config.inc.php to set new value of time in second that you want.
Ubuntu : location of config file is /etc/phpmyadmin/config.inc.php
$cfg['LoginCookieValidity'] = 246060; // is 1 day
Remark : also change auth_type to cookie by
$cfg['Servers'][$i]['authtype'] = 'cookie'; // authtype is config , cookie , http