Cách cài Apache, PHP 5, MySQL trên Ubuntu (LAMP) [NEW]

Trong các bài hướng dẫn về webserver của mình, kể cả loạt bài cơ bản về VPS, mình đã hướng dẫn các bạn khá chi tiết cách tạo webserver trên nền tảng hệ điều hành CentOS. Nhưng cũng có nhiều người thích Ubuntu hơn vì cài đặt phần mềm dễ dàng mà không phải load quá nhiều repo như CentOS, thân thiện hơn nên sau đây mình sẽ hướng dẫn các bạn cách cài đặt. Máy chủ trang web LAMP (Linux + Apache + MySQL + PHP) trên máy chủ Ubuntu, bạn có thể thực hành trên cả hai phiên bản Ubuntu 12.04 hoặc Ubuntu 14.04.

Thực ra Ubuntu và CentOS không quá khác nhau, nó chỉ có một số lệnh đặc biệt (như lệnh cài đặt phần mềm) nhưng với Ubuntu thì sẽ khác một chút ở đường dẫn lưu các tập tin cấu hình.

Nên tham khảo:

  • Học VPS cơ bản (sử dụng CentOS)
  • Các nhà cung cấp VPS tốt nhất

Đăng nhập vào SSH

Tất cả các máy chủ hệ điều hành nhân Linux cũng sẽ cần bạn đăng nhập vào SSH để tiếp tục. Tôi chỉ nhắc lại điều này vì tôi chắc rằng mọi người đã biết điều này.

Và mình cũng nói thêm là ở đây mình sẽ chỉ hướng dẫn trên máy chủ chưa cài đặt gì cả.

Cập nhật gói

Trước khi làm việc trên Ubuntu, bạn nên tiến hành cập nhật gói phần mềm của Ubuntu lên phiên bản mới nhất bằng lệnh:

[bash]apt-get cập nhật[/bash]

I. Cài đặt Apache

Tên phần mềm Apache trên Ubuntu sẽ là apache2 nên chúng ta sẽ cài đặt nó bằng lệnh sau:

[bash]apt-get install apache2[/bash]

Nếu nó yêu cầu Y / N, chỉ cần nhấn Y và sau đó Enter.

Sau khi cài đặt xong, truy cập vào địa chỉ IP của máy chủ, bạn sẽ thấy trang chào mừng Apache như sau:

Cách cài Apache, PHP 5, MySQL trên Ubuntu (LAMP) [NEW]

Trên trang chào mừng này, bạn nên đọc qua để biết đường dẫn và cấu trúc của các thư mục cấu hình Apache trên Ubuntu. Và nếu nó khó đọc, tôi sẽ giải thích bên dưới.

I.1) Cấu trúc thư mục cấu hình Apache trên Ubuntu

Theo mặc định trên Ubuntu, thư mục chứa cài đặt Apache sẽ nằm trong / etc / apache2. Trong thư mục đó, nó có một số thư mục và tệp cấu hình như sau:

  • conf-sẵn / – Thư mục này sẽ chứa các tệp cấu hình sẵn Apache trên Ubuntu, nhưng các cài đặt ở đây sẽ không được áp dụng vì Ubuntu không tải cài đặt cấu hình trong thư mục này.
  • conf-enable / – Thư mục chứa các tệp cấu hình của Apache trên Ubuntu được bật. Hãy hiểu rằng nếu thư mục này có một liên kết tượng trưng trên một tệp mô-đun trong thư mục có sẵn conf, nó sẽ được bật.
  • mod có sẵn / – Thư mục chứa các tập tin cho từng module của Apache trên Ubuntu nhưng chưa được kích hoạt.
  • đã kích hoạt mods / – Thư mục chứa các tệp cho từng mô-đun của Apache trên Ubuntu được kích hoạt.
  • trang web có sẵn / – Thư mục chứa tệp cấu hình VirtualHost của Apache trên Ubuntu nhưng chưa được kích hoạt.
  • trang web được kích hoạt / – Thư mục chứa tệp cấu hình Apache VirtualHost trên Ubuntu được kích hoạt.
  • apache2.conf – Tập tin cấu hình Apache trên Ubuntu.
  • envvars – Các biến thiết lập tệp với các giá trị có sẵn để sử dụng trong tệp cấu hình.
  • ma thuật – Tập tin thiết lập của mô-đun mod_mime_magic trên Apache.
  • port.conf – Tập tin cấu hình cổng mạng Apache (mặc định là cổng 80).

I.2) Thư mục gốc chứa dữ liệu trang web Apache trên Ubuntu

Theo mặc định, Apache trên Ubuntu sẽ sử dụng / var / www / html để lưu trữ dữ liệu trang web gốc (tải bằng IP hoặc tên máy chủ). Khi vào đây, bạn sẽ thấy một tệp index.html, đây là tệp giao diện chào mừng mà bạn đã thấy ở trên.

I.3) Thêm VirtualHost (thêm miền) vào Apache trên Ubuntu

Cách thêm VirtualHost của Apache trên Ubuntu sẽ khác một chút so với cách làm trên VPS cơ bản [Phần 7] – Cài đặt Apache Webserver “href =” https://thachpham.com/hosting-domain/vps-basic-apache-va-virtualhost.html “target =” _ blank”>thêm VirtualHost trên CentOS.

Đầu tiên, chúng ta cũng cần tạo cho nó một thư mục chứa dữ liệu cho miền được thêm vào.

[bash]

mkdir -p /home/thachpham.com/public_html
mkdir -p /home/thachpham.com/log
[/bash]

Sau đó, chúng tôi cần sao chép tệp /etc/apache2/sites-available/000-default.conf tạo một tệp mới có chứa cấu hình của miền sẽ được thêm vào (thachpham.com) trong /etc/apache2/sites-available/thachpham.com.conf.

[bash]cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/thachpham.com.conf [/bash]

Ghi chú: Có thể tệp cấu hình mặc định của bạn không phải là mặc định mà là “000-default.conf” nên tốt nhất bạn vào thư mục / etc / apache2 / sites-available / để xem và sao chép chính xác.

Bây giờ hãy mở tệp /etc/apache2/sites-available/thachpham.com.conf và chỉnh sửa nội dung trong đó để làm cho nó nhỏ gọn hơn như sau:


<VirtualHost *:80>
ServerName thachpham.com
ServerAlias www.thachpham.com
ServerAdmin [email protected]

DocumentRoot /home/thachpham.com/public_html

<Directory /home/thachpham.com/public_html>
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>

# Available loglevels: trace8, …, trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
LogLevel error

ErrorLog /home/thachpham.com/log/error.log
CustomLog /home/thachpham.com/log/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

Thay vào đó hãy nhớ:

  • SererName – Trang web tên miền cần được thêm vào.
  • ServerAlias – Sử dụng tên miền khác thay thế, còn gọi là Tên miền trỏ hướng nếu bạn đã sử dụng cPanel đó trước đó.
  • DocumentRoot – Đường dẫn đến thư mục chứa dữ liệu website tên miền này mà chúng ta đã tạo ở trên.
  • ErrorLog – Đường dẫn đến thư mục nhật ký đã tạo ở trên cho miền này.
  • CustomLog – Tương tự như ErrorLog nhưng sẽ lưu nhật ký truy cập bằng tệp access.log.

Sau đó, chúng tôi gõ lệnh sau để nó tự động tạo một liên kết tượng trưng của tệp này vào thư mục hỗ trợ trang web để kích hoạt nó.

a2ensite thachpham.com

Hãy nhớ rằng, thachpham.com.conf là tên của tệp cấu hình trong thư mục dành cho trang web có .conf bị bỏ qua.

Kết quả trả về:


[email protected]:~# a2ensite thachpham.com
Enabling site thachpham.com.
To activate the new configuration, you need to run:
service apache2 reload

Gõ lệnh sau để khởi động lại Apache.

[bash]khởi động lại dịch vụ apache2[/bash]

Bây giờ nếu bạn truy cập vào miền mới được thêm vào, nó sẽ hiển thị lỗi 403 vì thư mục của miền chứa tệp chỉ mục để nó tải. Hãy tạo một tệp index.html với nội dung sau và tải nó lên thư mục public_html của miền mới được thêm vào.

[html]



Tao VirtualHost Thanh Cong!



[/html]

Kết quả:

ubuntu-apache-testvirtualhost

Nếu có một 500. lỗi

Nếu bạn truy cập trang web của mình và gặp lỗi 500 (thường gặp trong Ubuntu 10.04 32-bit), hãy mở lại tệp cấu hình máy chủ ảo của bạn và xóa đoạn này:


Order allow,deny
Allow from all
Require all granted

I.4) Bật mô-đun mod_rewrite

Nếu bạn sử dụng WordPress sau này hoặc các trang web khác sử dụng mod_rewrite để viết liên kết, bạn phải bật mô-đun này. Trong phần VirtualHost, chúng tôi đã thêm AllowOverride All vào thiết lập thư mục gốc miền, nhưng chúng tôi cũng cần bật mô-đun viết lại. Nhập lệnh sau:

[bash]a2enmod viết lại[/bash]

Và khởi động lại Apache

[bash]khởi động lại dịch vụ apache2[/bash]

II. Cài đặt PHP

Để cài đặt các mô-đun PHP và PHP cho Apache trên Ubuntu, hãy nhập lệnh sau:

[bash]sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt[/bash]

Và cấu hình nó để nó ưu tiên lập chỉ mục tệp index.php thay vì index.html bằng cách chỉnh sửa tệp /etc/apache2/mods-enabled/dir.conf xuống bên dưới (thêm index.php):


<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Nhớ khởi động lại Apache.

[bash]khởi động lại dịch vụ apache2[/bash]

Hãy kiểm tra bằng cách tạo một tệp info.php trong thư mục tên miền với nội dung:

<?php phpinfo(); ?>

Chạy nó sau đó nếu hiển thị như dưới đây là ok.

ubuntu-phpinfo

II.1) Cài đặt thêm các mô-đun cho PHP

Nếu bạn muốn cài đặt thêm mô-đun cho PHP, bạn có thể tìm tên mô-đun trong gói cài đặt bằng lệnh sau:

[bash]tìm kiếm apt-cache php5-[/bash]

Kết quả sẽ trả về danh sách các mô-đun mà bạn có thể cài đặt, ví dụ:

php5-cgi – server-side, HTML-embedded scripting language (CGI binary)
php5-cli – command-line interpreter for the php5 scripting language
php5-common – Common files for packages built from the php5 source
php5-curl – CURL module for php5
php5-dbg – Debug symbols for PHP5
php5-dev – Files for PHP5 module development
php5-gd – GD module for php5
php5-gmp – GMP module for php5
php5-json – JSON module for php5
php5-ldap – LDAP module for php5
php5-mysql – MySQL module for php5
php5-odbc – ODBC module for php5
php5-pgsql – PostgreSQL module for php5
php5-pspell – pspell module for php5
php5-readline – Readline module for php5
php5-recode – recode module for php5
php5-snmp – SNMP module for php5
php5-sqlite – SQLite module for php5
php5-tidy – tidy module for php5
php5-xmlrpc – XML-RPC module for php5
php5-xsl – XSL module for php5
libphp5-embed – HTML-embedded scripting language (Embedded SAPI library)
php5-adodb – Extension optimising the ADOdb database abstraction library
php5-apcu – APC User Cache for PHP 5
php5-enchant – Enchant module for php5
php5-exactimage – fast image manipulation library (PHP bindings)
php5-fpm – server-side, HTML-embedded scripting language (FPM-CGI binary)
php5-gdcm – Grassroots DICOM PHP5 bindings
php5-gearman – PHP wrapper to libgearman
php5-geoip – GeoIP module for php5
php5-gnupg – wrapper around the gpgme library
php5-imagick – ImageMagick module for php5
php5-imap – IMAP module for php5
php5-interbase – interbase/firebird module for php5
php5-intl – internationalisation module for php5
php5-lasso – Library for Liberty Alliance and SAML protocols – PHP 5 bindings
php5-librdf – PHP5 language bindings for the Redland RDF library
php5-mapscript – php5-cgi module for MapServer
php5-mcrypt – MCrypt module for php5
php5-memcache – memcache extension module for PHP5
php5-memcached – memcached extension module for PHP5, uses libmemcached
php5-midgard2 – Midgard2 Content Repository – PHP5 language bindings and module
php5-ming – Ming module for php5
php5-mongo – MongoDB database driver
php5-msgpack – PHP extension for interfacing with MessagePack
php5-mysqlnd – MySQL module for php5 (Native Driver)
php5-mysqlnd-ms – MySQL replication and load balancing module for PHP
php5-oauth – OAuth 1.0 consumer and provider extension
php5-pinba – Pinba module for PHP 5
php5-ps – ps module for PHP 5
php5-radius – PECL radius module for PHP 5
php5-redis – PHP extension for interfacing with Redis
php5-remctl – PECL module for Kerberos-authenticated command execution
php5-rrd – PHP bindings to rrd tool system
php5-sasl – Cyrus SASL Extension
php5-stomp – Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP 5
php5-svn – PHP Bindings for the Subversion Revision control system
php5-sybase – Sybase / MS SQL Server module for php5
php5-tokyo-tyrant – PHP interface to Tokyo Cabinet’s network interface, Tokyo Tyrant
php5-vtkgdcm – Grassroots DICOM VTK PHP bindings
php5-xcache – Fast, stable PHP opcode cacher
php5-xdebug – Xdebug Module for PHP 5
php5-xhprof – Hierarchical Profiler for PHP5

Ví dụ: nếu tôi muốn cài đặt thêm xCache, hãy nhập:

[bash]apt-get cài đặt php5-xcache[/bash]

Sau khi cài đặt, hãy nhớ khởi động lại Apache. Rất dễ dàng phải không?

III. Cài đặt Máy chủ MySQL

Vui lòng nhập lệnh dưới đây để cài đặt MySQL Server và MySQL module cho PHP.

[bash]apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql[/bash]

Trong quá trình cài đặt, MySQL sẽ hiển thị giao diện để bạn đặt mật khẩu gốc cho MySQL.

ubuntu-mysql-rootpass

Sau khi cài đặt, hãy kích hoạt nó bằng lệnh sau:

[bash]mysql_install_db[/bash]

Sau đó chạy lệnh bổ sung này để cài đặt bảo mật cho MySQL Server và có thể thay đổi mật khẩu gốc.

[bash]/ usr / bin / mysql_secure_installation[/bash]

III.1) Cài đặt phpMyAdmin

Nếu bạn muốn có thêm phpMyAdmin, hãy cài đặt nó bằng cách gõ lệnh:

Bật mô-đun mcrypt

[bash]php5enmod mcrypt[/bash]

Và cài đặt phpMyAdmin

[bash]apt-get cài đặt phpMyAdmin[/bash]

Sau đó chọn apache2 và Enter.

ubuntu-phpmyadmin

Và chọn Yes để thiết lập cấu hình ban đầu cho phpMyAdmin.

ubuntu-phpmyadmin2

Sau đó nhập mật khẩu gốc của MySQL Server và Enter. Nếu nó yêu cầu tạo mật khẩu cho ứng dụng phpmyadmin, chỉ cần sử dụng mật khẩu gốc của MySQL Server.

Tiếp theo là mở tệp /etc/apache2/apache2.conf và chèn phần sau vào bên dưới phần cuối:

Include /etc/phpmyadmin/apache.conf

Sau khi cài đặt, hãy nhớ khởi động lại Apache.

[bash]khởi động lại dịch vụ apache2[/bash]

Bây giờ bạn có thể truy cập phpMyAdmin bằng đường dẫn http: // IP / phpmyadmin hoặc http: // domain / phpmyadmin.

Quyền thư mục / tệp cho Apache và PHP

Theo mặc định trên Ubuntu, Apache và PHP sẽ sử dụng người dùng www-data để truy cập và sử dụng tệp. Vì vậy hãy tiến hành cấp quyền sở hữu thư mục chứa trang web của bạn cho www-data.

[bash]chown -R www-data: www-data /home/thachpham.com[/bash]

Phần kết

Vì vậy, bây giờ bạn có một Máy chủ web LAMP đầy đủ trên máy chủ Ubuntu của mình. Và bạn có nhận ra rằng khi làm việc trên Ubuntu như cài đặt phần mềm, cài đặt module thì trên hệ điều hành RHEL / CentOS sẽ dễ dàng hơn không? Nếu bạn muốn sử dụng Máy chủ web NGINX (LEMP) trên Ubuntu, bạn có thể xem tại đây.

Đánh giá nội dung này