Do đã xuất hiện từ lâu nên LAMP (viết tắt của Linux, Apache, MySQL, và PHP) được dùng rất phổ biến trên thế giới.
Các bước cài đặt LAMP trên CentOS
Đầu tiên bạn cần chuẩn bị một server CentOS mới tinh chưa cài gì cả, ở đây mình dùng CentOS 6.4 64bit. Trước khi thao tác bạn cần phải đổi lại hostname và chỉnh sửa file host.
1. Cài đặt Apache
yum install httpd
Đường dẫn file cấu hình Apache:
/etc/httpd/conf/httpd.conf
Khởi động Apache
service httpd start
Test thử bằng cách truy cập vào http://<youraddress> bạn sẽ thấy thông báo “Apache 2 Test Page”
Lưu ý: nếu sử dụng VPS ở Vultr, mặc định port 80 sẽ bị block, khi truy cập vào IP sẽ bị báo lỗi ERR_CONNECTION_REFUSED. Bạn hãy thực hiện thêm thao tác mở port như sau:
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /etc/rc.d/init.d/iptables save
Cấu hình Apache Virtual Hosts
– Tạo một file cấu hình ở thư mục /etc/httpd/conf.d
, đặt tên ví dụ example.com.conf
(thay bằng domain của bạn)
Nội dung file /etc/httpd/conf.d/example.com.conf
NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin webmaster@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html/ ErrorLog /var/www/example.com/logs/error.log CustomLog /var/www/example.com/logs/access.log combined </VirtualHost>
– Tạo thư mục cho website
mkdir -p /var/www/example.com/public_html mkdir /var/www/example.com/logs
– Nếu muốn thêm website, bạn chỉ cần tạo thêm một file .conf khác và reload lại Apache với lệnh: service httpd reload
2. Cài đặt MySQL
yum install mysql-server service mysqld start
Tiến hành cài đặt MySQL bằng lệnh
/usr/bin/mysql_secure_installation
Do mới cài đặt nên nếu bị hỏi password bạn nhấn Enter
Enter current password for root (enter for none): OK, successfully used password, moving on...
Sau đó cần đặt root password bằng cách chọn y
Tiếp theo bạn sẽ phải trả lời một loạt các câu hỏi, tốt nhất cứ chọn y
By default, a MySQL installation has an anonymous user, allowing anyone to log into MySQL without having to have a user account created for them. This is intended only for testing, and to make the installation go a bit smoother. You should remove them before moving into a production environment. Remove anonymous users? [Y/n] y ... Success! Normally, root should only be allowed to connect from 'localhost'. This ensures that someone cannot guess at the root password from the network. Disallow root login remotely? [Y/n] y ... Success! By default, MySQL comes with a database named 'test' that anyone can access. This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] y - Dropping test database... ... Success! - Removing privileges on test database... ... Success! Reloading the privilege tables will ensure that all changes made so far will take effect immediately. Reload privilege tables now? [Y/n] y ... Success! Cleaning up... All done! If you've completed all of the above steps, your MySQL installation should now be secure. Thanks for using MySQL!
3. Cài đặt PHP
yum install php php-mysql
PHP Modules
PHP có rất nhiều thư viện module khác nhau, bạn có thể xem bằng cách gõ lệnh sau
yum search php-
php-bcmath.x86_64 : A module for PHP applications for using the bcmath library php-cli.x86_64 : Command-line interface for PHP php-common.x86_64 : Common files for PHP php-dba.x86_64 : A database abstraction layer module for PHP applications php-devel.x86_64 : Files needed for building PHP extensions php-embedded.x86_64 : PHP library for embedding in applications php-enchant.x86_64 : Human Language and Character Encoding Support php-gd.x86_64 : A module for PHP applications for using the gd graphics library php-imap.x86_64 : A module for PHP applications that use IMAP
Để cài module nào dùng lệnh sau
yum install name of the module
4. Tự động chạy service khi reboot
chkconfig httpd on chkconfig mysqld on
Restart Apache
service httpd restart
OK vậy là quá trình cài đặt LAMP trên CentOS vậy là xong.
Sau khi cài xong LAMP và tạo virtual host, lam sao thay đổi port cho phpmyadmin
mặc định: http://mydomain.com/phpmyadmin
muốn đổi thành http:// mydomain.com:8080/phpmyadmin
trong khi vẫn giữ http://mydomain.con ở port 80
Rất dễ hiểu. Cho mình hỏi sau khi cài xong LAMP thì cần cài gì nữa không để tối ưu hoặc bảo mật hệ thống server đó. Mới tìm hiểu vps nên cũng không rõ. Nếu có rất mong bạn cho xin từ khóa để tìm hiểu hoặc trên hocvps có rồi thì cho mình xin link
Bạn tham khảo: https://hocvps.com/toi-uu-server
Hoặc bạn có thể dùng trực tiếp các bash script như hocvps, vpssim – đã được tối ưu sẵn
Đến bước 2. Cài đặt MySQL
Em gõ lệnh cài: yum install mysql-server
Thì trả về lỗi no park:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.0x.sg
* extras: mirror.0x.sg
* updates: mirror.0x.sg
No package mysql-server available.
Error: Nothing to do
Dẫn tới ko lệnh sau ko thực hiện được.
Vậy khắc phục ntn ạ? Cảm ơn bác.
Mình test trên CentOS release 6.10 (Final) vẫn thấy bình thường. Bạn kiểm tra có đúng đang cài trên CentOS 6 không?
# yum install mysql-server
Installed:
mysql-server.x86_64 0:5.1.73-8.el6_8
Dạ e lại đang cài CentOS 7 của DO ợ. 😀 Bắt buộc dùng bản 6 à a?
Hướng dẫn trong HocVPS áp dụng CentOS 6 thôi. Còn CentOS 7 bạn cần cập nhật Yum Repository trước
Hướng dẫn từ chính DO đây: https://www.digitalocean.com/community/tutorials/how-to-install-mysql-on-centos-7
OK a. E đã cái CentOS 6 và cài được MySQL rồi. Nhưng tới đoạn set up nhập pass. Nhấn Enter thì nó báo lỗi ko kết nối đc ạ.
Enter current password for root (enter for none):
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
Bạn bật MySQL chưa? service mysqld status
ở bước: Cấu hình Apache Virtual Hosts
/etc/httpd/conf.d/domain1.com.conf
mình enter dòng trên thì nó báo: -bash: /etc/httpd/conf.d/domain1.com.conf no such file or tồn tại
Lệnh trên không phải chỉnh sửa. Bạn phải dùng nano hoặc vi để chỉnh sửa file nhé
Ví dụ
nano /etc/httpd/conf.d/domain1.com.conf
Sorry a. Do e chưa bật. 😀
Chào Luân!
Cứ 1 vài ngày thì site mình lại bị lỗi “cant connect to local msql server through socket var/lib/mysql/mysql.sock”. Mình đã tạo file và cmod thư mục mysql như hướng dẫn, chạy được 1 thời gian lại bị như vậy lại. Bạn chỉ mình cách khác phục được ko? Mình cảm ơn!
Tức cứ vài ngày là file mysql.sock không tồn tại và bạn phải tạo và chmod cho file ý? Bạn kiểm tra log mysql xem thì cụ thể hơn
Kêt nối database, mình dùng 127.0.0.1 thay cho localhost thì nó không bị lỗi đó nữa.
Well Noted. Mặc dù thực sự 2 cái này mình thấy same same nhau. Bạn để kết nối database trong source code là 127.0.0.1?
Đúng rồi bạn. Trong source code mình kết nối data là 127.0.0.1 thì nó ko bị lỗi nữa. Nhưng dùng “localhost” thì cứ 1 ngày nó lại báo lỗi, mặc dù đã tạo file .sock và cmod thư mục rồi.