Cài đặt LAMP trên Fedora
Bước đầu tiên để học lập trình web PHP là bạn phải có đầy đủ công cụ và môi trường để chạy ứng dụng. Hiện nay có nhiều cách tạo môi trường và sử dụng cách nào thì phụ thuộc vào hệ điều hành mà bạn đang sử dụng.
Nếu bạn dùng Window thì có thể chọn Vertrigo, Xampp hoặc một phần mềm tạo máy chủ ảo bất kì nào đó. Nhưng nếu bạn sử dụng Linux thì bạn có thể cài LAMP hoặc LEMP, trong loạt bài này thì mình sẽ sử dụng LAMP.
1. LAMP là gì?
LAMP đã trở thành một tiêu chuẩn trong cộng đồng web ở những năm gần đây. Viết tắt của LAMP là Linux - Apache – MySQL – PHP, là một môi trường để bạn tạo một server dể chạy thử website trên máy tính của bạn, hiểu nôm na là thế. Trên Win bạn có WAMP hoặc XAMP thì cũng tương tự như vậy trên linux Fedora 21 ta có LAMP, mà LAMP thì ngon hơn nhiều :).
2. Cài đặt LAMP trên Fedora
Sau đây mình sẽ hướng dẫn cài đặt bộ LAMP trên hệ điều hành Linux Fedora.
Bài viết này được đăng tại [free tuts .net]
Bước 1: Đăng nhập tài khoản Root
Việc đầu tiên là bạn mở Terminal lên: Click WINDOW rồi gõ chữ terminal vào ô tìm kiếm, như hình sau:
Gõ vào dòng sau để dùng quyền root (cài phần mềm phải dùng quyền root -quyền cao nhất)
su -
Rồi gõ vào mật khẩu tài khoản root của bạn. Nó sẽ không hiển thị bất kỳ ký tự nào, đừng lo lắng, cứ đấnh đúng thì nó sẽ pass qua thôi, còn không thì nó sẽ báo lỗi. Mình lần dầu dùng cứ ngỡ nó bị lỗi mà thật ra đó là … một tính năng :)
Bạn sẽ thấy nó chuyển từ người dùng bình thường [yaourt@localhost ~]$ sang tài khoản root [root@localhost ~]# . Nôm na thì các bạn cứ hiểu root là trùm cuối quản lý mấy thằng con của nó. Một lưu ý khi dùng quyền root là hãy cẩn thận và chắc chắn là bạn hiểu rõ nhưng gì bạn viết trên terminal.
Bước 2: Cài đặt Apache
Linux thì ta có rồi nên giờ cày Apache vào thôi. Gõ dòng sau vào termial
:
yum install httpd
Nó sẽ load các gói và các file cần cài rồi hỏi bạn có muỗn cài hay không? Gõ vào chữ y để chọn yes. Dạng thế này này:
Ở trên mình chỉ lấy ví dụ cho bạn dễ hình dung thôi. Chứ tấm hình trên là mình cài Playonlinux. Sau này khi bạn cài 1 phần mềm gì thì nó sẽ theo trình tự: load package → hỏi bạn có muỗn cài không? → y hoặc Y hoặc yes → ngồi đợi nó cài.
Giao diện khi đang cài đặt dạng thế này:
Có thể bản Fedora 21 khi cài nó đã cài sẵn Git, HTTPD cho bạn rồi thì bạn sẽ thấy thông báo sau:
Nếu vậy thì bạn dùng tiếp các dòng lệnh sau:
systemctl enable httpd.service systemctl start httpd.service
Dòng đầu là để mở cái Apache lên, dòng sau là để bắt đầu cho nó chạy. Tiếp theo là mở tường lửa cho Apache cho nó chạy được. Gõ dòng sau vào để mở file config SELinux:
vi /etc/sysconfig/selinux
Hãy sửa dòng SELINUX=enforcing thành SELINUX=disabled rồi nhấn nút Esc góc trên cùng bên trái 3 lần rồi đánh gõ :wq vào, để ý hình dưới thì dòng :wq nó hiện ở góc trái dưới cùng của terminal như hình ở dưới:
Xong nhấn Enter để lưu lại.
Sau đó vào bạn sẽ quay trở ra Termial, gõ tiếp 4 dòng sau để mở tường lửa.
firewall-cmd –set-default-zone=public firewall-cmd --permanent --zone=public --add-service=http firewall-cmd --permanent --zone=public --add-service=https firewall-cmd –reload
Sau đó truy cập địa chỉ http://localhost/
sẽ thấy trang chủ của Apache là ok rồi.
Bước 3: Cài đặt MySQL:
Kế đến là MySQL. Trên họ nhà RedHat (RHEL, CentOS, Fedora) hiện nay đang sử dụng mariadbthay thế cho MySQL. Trên cơ bản thì 2 thằng nó chẳng khác gì cả, chẳng qua giờ em MySQL có nguy cơ thành phần mềm trả phí nên cộng đồng tạo ra mariadb cho tụi mình xài miễn phí thôi :)
yum install mariadb mariadb-server
Như cũ thì bạn dán dòng đó vào terminal rồi Enter rồi đợi rồi chọn y rồi Enter tiếp để xác nhận cài đặt là được. Từ bây giờ mình sẽ không nói đến khúc này nữa, hễ có lệnh install thì mình sẽ mặc định là các bạn biết làm rồi. Xong rồi thì bật nó lên sau chạy nó bằng 2 dòng lệnh
systemctl enable mariadb.service systemctl start mariadb.service
Rồi bạn chạy lệnh sau để bắt đầu cấu hình cài MySQL.
mysql_secure_installation
Rồi bạn sẽ thấy lần lượt từng dòng lệnh sau trong Terminal:
[root@localhost ~]# mysql_secure_installation /usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY! In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here. Enter current password for root (enter for none):<-- ENTER OK, successfully used password, moving on... Setting the root password ensures that nobody can log into the MariaDB root user without the proper authorisation. Set root password? [Y/n]<-- ENTER New password:<-- nhập vào mật khẩu mới của bạn Re-enter new password:<-- nhập mật khẩu lần nữa Password updated successfully! Reloading privilege tables.. ... Success! By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB 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]<-- ENTER ... 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]<-- ENTER ... Success! By default, MariaDB 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]<-- ENTER - 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]<-- ENTER ... Success! Cleaning up... All done! If you've completed all of the above steps, your MariaDB installation should now be secure. Thanks for using MariaDB! [root@localhost ~]#
Bước 4: Cài đặt PHP
OK. Giờ đã xong cái Database, chỉ còn thằng PHP là xong phim. Gõ dòng sau để cài đặt PHP 5.6 (hay cái là chỉ có mỗi thằng Fedora mặc định cài 5.6, Ubuntu hay Debian đều chơi vs 5.5.9 mới đau).
yum install php
Sau đó dùng lệnh sau để khởi động lại cái Apache cho nó chạy.
systemctl restart httpd.service
Set quyền truy cập vào thư mục chứa web site của mình tại thư mục /var/www/html/
chmod -R 777 /var/www/
Sau đó truy cập vào thư mục /var/www/html/
rồi tạo 1 file index.php
với nôi dung như sau:
<?php phpinfo(); ?>
Rồi bạn truy cập lại vào địa chỉ http://localhost/index.php
thấy giao diện như sau là OK.
Hiện tại nếu các bạn quăng source của bạn vào thì nó sẽ k chạy được, nó sẽ báo lỗi → Lỗi này 100% là bạn chưa set quyền truy cập cho các file + thư mục bạn vừa để vào. Rồi các bạn fix được thì sẽ dính tiếp Mod_rewrite. Vậy bài tập cho các bạn là fix 2 lỗi sau:
1. Lỗi không thể truy cập thư mục, file - từ khóa: Can not access file in linux, bạn nào tìm hiểu chmod thì sẽ làm dc ok
2. Chỉnh mode_rewrite, khuyến khích đọc không khuyến khích làm theo nhé, lỡ có lỗi cài lại mắc công lắm :)
3. Lời kết
Thật ra còn 1 giải pháp nữa là LEMP, thay thế Apache bằng Nginx → tốc độ được cải thiện đáng kể khi dùng cho site truy cập lớn. Nhưng mỗi cái đều có bất tiện nên người ta nghĩ ra biện pháp xài cả Nginx và Apache, các bạn có thể tìm đọc các bài so sánh 2 thằng này, rồi cách cấu hình để Nginx lồng vào Apache, nếu cài DirectAdmin thì không cần quan tâm lắm khúc này. Vì mình thích tự mày mò nên mới giới thiệu cho mọi người tìm
Bài sau mình sẽ tiếp tục hướng dẫn cài tools - Editor sublime text 3 trên fedora 21, rồi một vài ứng dụng, thiết lập cần thiết; giải quyết các vấn đề phát sinh thường gặp ( 2 lỗi ở trên ). Chào và hẹn gặp lại