Hướng dẫn cài đặt LAMP và tạo VirtualHost(APACHE-PHP-MYSQL) trên centos 6
I.Chuẩn bị
Cài đặt kho epel và remi ,Tham khảo link sau Click Here
Tắt selinux ,sửa file selinux
# nano /etc/sysconfig/selinux
Sửa SELINUX=disabled
# reboot để khởi động lại máy
II.Tiến hành
Bước 1 : Cài đặt httpd
# yum install httpd -y
khởi động service httpd
# service httpd start
Để apache khởi động cùng hệ thống
# chkconfig httpd on
Mở cổng 80 và 3306 iptables
# nano /etc/sysconfig/iptables
Và thêm vào 2 dòng
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
khởi động lại iptables
# service iptables restart
Có thể bạn sẽ gặp lỗi này không sao cả
[root@nguyenvietduc yum.repos.d]# service httpd start
Starting httpd: httpd: Could not reliably determine the server’s fully qualified domain name, using 107.189.160.9 for ServerName
[ OK ]
Sửa lỗi bằng cách sửa file httpd.conf
# nano /etc/httpd/conf/httpd.conf
Tìm dòng sau
#ServerName www.example.com:80
Bỏ dấu # và sửa thành
ServerName *:80
khởi động lại service httpd
# service httpd restart
kiểm tra xem httpd hoạt động không ,truy cập vào ip của bạn nếu được hình như sau là thành công
Bước 2 : cài đặt php
Dùng lệnh yum để cài php
# yum install -y php
Các gốc tài liệu của trang web mặc định là /var/www/html. Bây giờ chúng ta sẽ tạo ra một file PHP nhỏ <info.php> trong thư mục đó và gọi nó trong một trình duyệt. Các tập tin sẽ hiển thị nhiều chi tiết hữu ích về cài đặt PHP của chúng tôi, chẳng hạn như các phiên bản PHP được cài đặt.
# nano /var/www/html/info.php
Trong file info.php ta có nội dung sau
<?php
phpinfo();
?>
Ta reset lại httpd
# service httpd restart
Truy cập địa chỉ ip của bạn http://<ip server>/info.php nếu có hình sau là thành công
Lưu ý sao khi kiểm tra xong ta nên xóa file info.php đi ,để tránh ng khác truy cập vào
# rm -rf /var/www/html/info.php
Để chuẩn bị cài MySQL ta cần cài thêm một số gói php như sau
# yum -y install php-mysql
# yum -y install php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel
# yum -y install php-pecl-apc
Restart lại apache
# service httpd restart
Bước 3 : cài đặt MySQL
Dùng lệnh yum để cài đặt
# yum -y install mysql mysql-server
Cho mysql khởi động cùng hệ thống
# chkconfig mysqld on
Khởi động dịch vụ mysql
# service mysqld start
Đặt mật khẩu cho tài khoản root MySQL:
# mysql_secure_installation
Sẽ hiện ra các câu sau
câu 1 : Enter current password for root (enter for none)<Nhập mật khẩu hiện tại cho root (nhập cho không có)> : cứ enter là xong
câu 2 : Set root password? [Y/n]<Đặt mật khẩu gốc> chọn Y và nhập mật khẩu
câu 3 : Remove anonymous users? [Y/n]<xóa người dùng vô danh> chọn Y
câu 4 : Disallow root login remotely? [Y/n]<Không cho phép đăng nhập root từ xa> chọn Y
câu 5 : Remove test database and access to it? [Y/n]<xóa cơ sở dữ liệu kiểm tra và truy cập vào nó> chọn Y
câu 6 : Reload privilege tables now? [Y/n]<khởi động lại> Chọn Y
Để đăng nhập vào mysql ta dùng lệnh
# mysql -u root -p
Bước 4: Tạo VirtualHost
Tạo 1 thư mục public_html riêng để chứa các file của web, ta lên phân biệt giữa các thư mục bằng tên domain
# mkdir -p /home/webdata/maxserver.net/public_html
Thêm use apache và group apache sở hữu thư mục này
# chown -R apache:apache /home/webdata/maxserver.net
Tạo 1 file để ghi lỗi của web có tên là error.log
# mkdir /home/webdata/maxserver.net/log
# touch /home/webdata/maxserver.net/log/error.log
Tạo 1 file với 1 nội dung như sau để test xem có virtualhost có hoạt động không
# nano /home/webdata/maxserver.net/public_html/index.html
Nội dung như sau:
<html>
<head>
<title>maxserver</title>
</head>
<body>
<h1>Chuc mot ngay tot lanh!</h1>
</body>
</html>
Chỉnh sửa file cấu hình của apache
# nano /etc/httpd/conf/httpd.conf
Tìm dòng sau
#NameVirtualHost *:80 (ở dòng 990)
Ta bảo dấu # ở đầu đi để cho tất cả domain có thể truy cập qua port 80
NameVirtualHost *:80
Tạo 1 file đuôi là .conf trong thư mục conf.d ví dụ như domain.conf
# nano /etc/httpd/conf.d/maxserver.conf
Có nội dung như sau
<VirtualHost *:80>
ServerAdmin contact@maxserver.net
DocumentRoot /home/webdata/maxserver.net/public_html
ServerName www.maxserver.net
ServerAlias maxserver.net
ErrorLog /home/webdata/maxserver.net/log/error.log
</VirtualHost>
Khởi động lại dịch vụ httpd
# service httpd restart
Bước cuối cùng ta trỏ domain về địa chỉ ip , thử truy cập vào domain và ra đc nội dung ta đã tạo là thành công
III.Một số câu lệnh MySQL
Trên CentOS, toàn bộ file database được lưu trong thư mục /var/lib/mysql
1.Các thao tác database
Hiển thị toàn bộ databases:
mysql> SHOW DATABASES;
Tạo database:
mysql> CREATE DATABASE <tên cơ sở dữ liệu>;
Sử dụng một database:
mysql> USE <tên cơ sở dữ liệu>;
Xóa một database:
mysql> DROP DATABASE <tên cơ sở dữ liệu>;
2.Quản lý tài khoản và phân quyền
Hiển thị toàn bộ users:
mysql> SELECT * FROM mysql.user;
Xóa null user:
mysql> DELETE FROM mysql.user WHERE user = ’ ’;
Xóa tất cả user mà không phải root:
mysql> DELETE FROM mysql.user WHERE NOT (host="localhost" AND user="root");
Đổi tên tài khoản root (giúp bảo mật):
mysql> UPDATE mysql.user SET user="mydbadmin" WHERE user="root";
Gán full quyền cho một user mới:
mysql> GRANT ALL PRIVILEGES ON *.* TO ’username’@’localhost’ IDENTIFIED BY ’mypass’ WITH GRANT OPTION;
Phân quyền chi tiết cho một user mới:
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON mydatabase.* TO ’username’@’localhost’ IDENTIFIED BY ’mypass’;
Gán full quyền cho một user mới trên một database nhất định:
mysql> GRANT ALL PRIVILEGES ON mydatabase.* TO ’username’@’localhost’ IDENTIFIED BY ’mypass’ WITH GRANT OPTION;
Thay đổi mật khẩu user:
mysql> UPDATE mysql.user SET password=PASSWORD("newpass") WHERE User=’username’;
Xóa user:
mysql> DELETE FROM mysql.user WHERE user="username";
3.Các thao tác sao lưu và phục hồi
Sao lưu toàn bộ database bằng lệnh (chú ý không có khoảng trắng giữa -p và mật khẩu):
mysqldump -u root -pmypass --all-databases > alldatabases.sql
Sao lưu một database bất kỳ:
mysqldump -u username -pmypass databasename > database.sql
Khôi phục toàn bộ database bằng lệnh:
mysql -u username -pmypass < alldatabases.sql (no space in between -p and mypass)
Khôi phục một database bất kỳ:
mysql -u username -pmypass databasename < database.sql
Chỉ sao lưu cấu trúc database:
mysqldump --no-data --databases databasename > structurebackup.sql
Chỉ sao lưu cấu trúc nhiều database:
mysqldump --no-data --databases databasename1 databasename2 databasename3 > structurebackup.sql
Sao lưu một số table nhất định:
mysqldump --add-drop-table -u username -pmypass databasename table_1 table_2 > databasebackup.sql