Nếu bạn không biết địa chỉ IP công cộng của máy chủ của mình là gì, có một số cách bạn có thể tìm thấy nó. Thông thường, đây là địa chỉ bạn sử dụng để kết nối với máy chủ của mình thông qua SSH.
Có một số cách khác nhau để thực hiện việc này từ dòng lệnh. Đầu tiên, bạn có thể sử dụng các iproute2công cụ để lấy địa chỉ IP của mình bằng cách nhập:
$ ip addr show eth0 | grep inet | awk ‘{ print $2; }’ | sed ‘s/\/.*$//’
Sao chép
Điều này sẽ cung cấp cho bạn hai hoặc ba dòng trở lại. Chúng đều là địa chỉ chính xác, nhưng máy tính của bạn có thể chỉ sử dụng được một trong số chúng, vì vậy hãy thử từng địa chỉ.
Một phương pháp thay thế là sử dụng curltiện ích để liên hệ với bên ngoài để cho bạn biết cách nó nhìn thấy máy chủ của bạn. Điều này được thực hiện bằng cách hỏi một máy chủ cụ thể địa chỉ IP của bạn là gì:
$ sudo apt install curl
$ curl http://icanhazip.com
Sao chép
Bất kể phương pháp nào bạn sử dụng để lấy địa chỉ IP, hãy nhập địa chỉ đó vào thanh địa chỉ của trình duyệt web để xem trang Apache mặc định.
- Bước 2: Cài đặt MySQL
Bây giờ bạn đã thiết lập và chạy máy chủ web của mình, đã đến lúc cài đặt MySQL. MySQL là một hệ quản trị cơ sở dữ liệu. Về cơ bản, nó sẽ tổ chức và cung cấp quyền truy cập vào cơ sở dữ liệu nơi trang web của bạn có thể lưu trữ thông tin.
Một lần nữa, hãy sử dụng aptđể mua và cài đặt phần mềm này:
$ sudo apt install mysql-server
Lưu ý : Trong trường hợp này, bạn không phải chạy sudo apt updatetrước lệnh. Điều này là do gần đây bạn đã chạy nó trong các lệnh trên để cài đặt Apache. Chỉ mục gói trên máy tính của bạn phải được cập nhật.
Lệnh này cũng sẽ hiển thị cho bạn danh sách các gói sẽ được cài đặt, cùng với dung lượng ổ đĩa mà chúng sẽ chiếm. Nhập Yđể tiếp tục.
Khi quá trình cài đặt hoàn tất, hãy chạy một tập lệnh bảo mật đơn giản được cài đặt sẵn với MySQL, tập lệnh này sẽ loại bỏ một số mặc định nguy hiểm và khóa quyền truy cập vào hệ thống cơ sở dữ liệu của bạn. Bắt đầu tập lệnh tương tác bằng cách chạy:
$ sudo mysql_secure_installation
Điều này sẽ hỏi nếu bạn muốn cấu hình VALIDATE PASSWORD PLUGIN.
Lưu ý: Việc kích hoạt tính năng này chỉ là một lời kêu gọi phán xét. Nếu được bật, mật khẩu không phù hợp với tiêu chí đã chỉ định sẽ bị MySQL từ chối với lỗi. Điều này sẽ gây ra sự cố nếu bạn sử dụng mật khẩu yếu kết hợp với phần mềm tự động cấu hình thông tin đăng nhập người dùng MySQL, chẳng hạn như các gói Ubuntu cho phpMyAdmin. Có thể an toàn để tắt tính năng xác thực, nhưng bạn phải luôn sử dụng mật khẩu mạnh, duy nhất cho thông tin đăng nhập cơ sở dữ liệu.
Trả lời Ycho có, hoặc bất cứ điều gì khác để tiếp tục mà không cần bật.
VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?
Press y|Y for Yes, any other key for No:
Nếu bạn trả lời “có”, bạn sẽ được yêu cầu chọn cấp độ xác thực mật khẩu. Hãy nhớ rằng nếu bạn nhập 2ở cấp độ mạnh nhất, bạn sẽ nhận được lỗi khi cố gắng đặt bất kỳ mật khẩu nào không chứa số, chữ hoa và chữ thường và ký tự đặc biệt hoặc dựa trên các từ thông dụng trong từ điển.
There are three levels of password validation policy:
LOW Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary file
Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Đối với các câu hỏi còn lại, hãy bấm Yvà nhấn ENTERphím ở mỗi lời nhắc. Thao tác này sẽ xóa một số người dùng ẩn danh và cơ sở dữ liệu thử nghiệm, vô hiệu hóa đăng nhập gốc từ xa và tải các quy tắc mới này để MySQL ngay lập tức tôn trọng những thay đổi bạn đã thực hiện.
Lưu ý rằng trong các hệ thống Ubuntu chạy MySQL 5.7 (và các phiên bản mới hơn), người dùng MySQL gốc được đặt để xác thực bằng cách sử dụng auth_socketplugin theo mặc định chứ không phải bằng mật khẩu. Điều này cho phép một số bảo mật và khả năng sử dụng cao hơn trong nhiều trường hợp, nhưng nó cũng có thể làm phức tạp mọi thứ khi bạn cần cho phép một chương trình bên ngoài (ví dụ: phpMyAdmin) truy cập vào người dùng.
Nếu bạn thích sử dụng mật khẩu khi kết nối với MySQL dưới dạng root , bạn sẽ cần chuyển phương thức xác thực của nó từ auth_socketsang mysql_native_password. Để thực hiện việc này, hãy mở lời nhắc MySQL từ thiết bị đầu cuối của bạn:
$ sudo mysql
Tiếp theo, hãy kiểm tra phương thức xác thực mà mỗi tài khoản người dùng MySQL của bạn sử dụng bằng lệnh sau:
Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | | auth_socket | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
4 rows in set (0.00 sec)
Trong ví dụ này, bạn có thể thấy rằng người dùng root trên thực tế xác thực bằng cách sử dụng auth_socketplugin. Để cấu hình tài khoản gốc để xác thực bằng mật khẩu, hãy chạy ALTER USERlệnh sau . Đảm bảo thay đổi passwordmật khẩu mạnh mà bạn chọn:
Mysql> ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;
Sau đó, chạy lệnh FLUSH PRIVILEGESnày yêu cầu máy chủ tải lại các bảng cấp và đưa các thay đổi mới của bạn có hiệu lực:
Mysql> FLUSH PRIVILEGES;
Kiểm tra lại các phương thức xác thực được sử dụng bởi từng người dùng của bạn để xác nhận rằng root không còn xác thực bằng auth_socketplugin nữa:
Mysql> SELECT user,authentication_string,plugin,host FROM mysql.user;
Output
+——————+——————————————-+———————–+———–+
| user | authentication_string | plugin | host |
+——————+——————————————-+———————–+———–+
| root | *3636DACC8616D997782ADD0839F92C1571D6D78F | mysql_native_password | localhost |
| mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | mysql_native_password | localhost |
| debian-sys-maint | *CC744277A401A7D25BE1CA89AFF17BF607F876FF | mysql_native_password | localhost |
+——————+——————————————-+———————–+———–+
4 rows in set (0.00 sec)
Bạn có thể thấy trong đầu ra ví dụ này rằng người dùng MySQL gốc hiện xác thực bằng mật khẩu. Khi bạn xác nhận điều này trên máy chủ của mình, bạn có thể thoát MySQL shell:
mysql> exit
Tại thời điểm này, hệ thống cơ sở dữ liệu của bạn hiện đã được thiết lập và bạn có thể chuyển sang cài đặt PHP, thành phần cuối cùng của ngăn xếp LAMP.
- Bước 3: Cài đặt PHP
PHP là thành phần thiết lập của bạn sẽ xử lý mã để hiển thị nội dung động. Nó có thể chạy các tập lệnh, kết nối với cơ sở dữ liệu MySQL của bạn để lấy thông tin và chuyển giao nội dung đã xử lý cho máy chủ web của bạn để hiển thị.
Một lần nữa, hãy tận dụng apthệ thống để cài đặt PHP. Ngoài ra, hãy bao gồm một số gói trợ giúp lần này để mã PHP có thể chạy trong máy chủ Apache và nói chuyện với cơ sở dữ liệu MySQL của bạn:
$ sudo apt install php libapache2-mod-php php-mysql
Điều này sẽ cài đặt PHP mà không gặp bất kỳ vấn đề gì. Chúng tôi sẽ kiểm tra điều này trong giây lát.
Trong hầu hết các trường hợp, bạn sẽ muốn sửa đổi cách Apache phân phát tệp khi một thư mục được yêu cầu. Hiện tại, nếu người dùng yêu cầu một thư mục từ máy chủ, Apache trước tiên sẽ tìm kiếm một tệp được gọi index.html. Chúng tôi muốn nói với máy chủ web thích các tệp PHP hơn các tệp khác, vì vậy hãy tạo Apache tìm kiếm một index.phptệp trước.
Để thực hiện việc này, hãy nhập lệnh này để mở dir.conftệp trong trình soạn thảo văn bản với đặc quyền root:
$ sudo nano /etc/apache2/mods-enabled/dir.conf
Nó sẽ trông giống thế này:
- /etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>
Di chuyển tệp chỉ mục PHP (được đánh dấu ở trên) đến vị trí đầu tiên sau DirectoryIndexđặc tả, như sau:
/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>
Khi bạn hoàn tất, hãy lưu và đóng tệp bằng cách nhấn CTRL+X. Xác nhận lưu bằng cách gõ Yvà sau đó nhấn ENTERđể xác minh vị trí lưu tệp.
Sau đó, khởi động lại máy chủ web Apache để các thay đổi của bạn được công nhận. Làm điều này bằng cách nhập vào:
$ sudo systemctl restart apache2
Bạn cũng có thể kiểm tra trạng thái của apache2dịch vụ bằng cách sử dụng systemctl:
$ sudo systemctl status apache2
Sample Output
apache2.service – LSB: Apache2 web server
Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
Drop-In: /lib/systemd/system/apache2.service.d
└─apache2-systemd.conf
Active: active (running) since Tue 2018-04-23 14:28:43 EDT; 45s ago
Docs: man:systemd-sysv-generator(8)
Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
Tasks: 6 (limit: 512)
CGroup: /system.slice/apache2.service
├─13623 /usr/sbin/apache2 -k start
├─13626 /usr/sbin/apache2 -k start
├─13627 /usr/sbin/apache2 -k start
├─13628 /usr/sbin/apache2 -k start
├─13629 /usr/sbin/apache2 -k start
└─13630 /usr/sbin/apache2 -k start
Nhấn Q để thoát khỏi đầu ra trạng thái này.
Để nâng cao chức năng của PHP, bạn có tùy chọn cài đặt một số mô-đun bổ sung. Để xem các tùy chọn có sẵn cho các mô-đun và thư viện PHP, hãy chuyển kết quả apt searchvào less, một máy nhắn tin cho phép bạn cuộn qua đầu ra của các lệnh khác:
$ apt search php- | less
Sử dụng các phím mũi tên để cuộn lên và xuống, và nhấn Qđể thoát.
Kết quả là tất cả các thành phần tùy chọn mà bạn có thể cài đặt. Nó sẽ cung cấp cho bạn một mô tả ngắn cho mỗi:
bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64
Tracks usage of TCP/IP and builds html files with graphs
bluefish/bionic 2.2.10-1 amd64
advanced Gtk+ text editor for web and software development
cacti/bionic 1.1.38+ds1-1 all
web interface for graphing of monitoring systems
ganglia-webfrontend/bionic 3.6.1-3 all
cluster monitoring toolkit – web front-end
golang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all
PHP-like Compression and Archive Extensions in Go
haserl/bionic 0.9.35-2 amd64
CGI scripting program for embedded environments
kdevelop-php-docs/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php
kdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all
transitional package for kdevelop-php-l10n
…
:
Để tìm hiểu thêm về chức năng của mỗi mô-đun, bạn có thể tìm kiếm trên internet để biết thêm thông tin về chúng. Ngoài ra, hãy xem mô tả dài của gói bằng cách nhập:
$ apt show package_name
Sẽ có rất nhiều đầu ra, với một trường được gọi Descriptionsẽ có phần giải thích dài hơn về chức năng mà mô-đun cung cấp.
Ví dụ: để tìm hiểu những gì php-climô-đun làm, bạn có thể nhập sau:
$ apt show php-cli
Cùng với một lượng lớn thông tin khác, bạn sẽ tìm thấy thứ gì đó giống như sau:
Output
…
Description: command-line interpreter for the PHP scripting language (default)
This package provides the /usr/bin/php command interpreter, useful for
testing PHP scripts from a shell or performing general shell scripting tasks.
.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
.
This package is a dependency package, which depends on Ubuntu’s default
PHP version (currently 7.2).
…
Nếu sau khi nghiên cứu, bạn quyết định muốn cài đặt một gói phần mềm, bạn có thể làm như vậy bằng cách sử dụng apt installlệnh như cách bạn đã làm cho phần mềm khác.
Nếu bạn quyết định đó php-clilà thứ bạn cần, bạn có thể nhập:
$ sudo apt install php-cli
Nếu bạn muốn cài đặt nhiều mô-đun, bạn có thể thực hiện việc đó bằng cách liệt kê từng mô-đun, được phân tách bằng dấu cách, theo apt installlệnh, như sau:
$ sudo apt install package1 package2 …
Tại thời điểm này, ngăn xếp LAMP của bạn đã được cài đặt và cấu hình. Trước khi bạn làm bất kỳ điều gì khác, chúng tôi khuyên bạn nên thiết lập máy chủ ảo Apache nơi bạn có thể lưu trữ chi tiết cấu hình máy chủ của mình.
- Bước 4: Thieets lập máy chủ ảo (Khuyến nghị)
Khi sử dụng máy chủ web Apache, bạn có thể sử dụng máy chủ ảo (tương tự như khối máy chủ trong Nginx) để đóng gói chi tiết cấu hình và lưu trữ nhiều hơn một miền từ một máy chủ. Chúng tôi sẽ thiết lập một miền có tên your_domain , nhưng bạn nên thay thế miền này bằng tên miền của riêng bạn . Để tìm hiểu thêm về cách thiết lập tên miền với DigitalOcean, hãy xem Giới thiệu về DNS DigitalOcean của chúng tôi .
Apache trên Ubuntu 18.04 có một khối máy chủ được kích hoạt theo mặc định được cấu hình để cung cấp tài liệu từ /var/www/htmlthư mục. Mặc dù điều này hoạt động tốt cho một trang web, nhưng nó có thể trở nên khó sử dụng nếu bạn đang lưu trữ nhiều trang web. Thay vì sửa đổi /var/www/html, hãy tạo cấu trúc thư mục bên trong /var/wwwcho trang your_domain của chúng tôi , giữ nguyên /var/www/htmlvị trí này làm thư mục mặc định được phục vụ nếu yêu cầu của khách hàng không khớp với bất kỳ trang web nào khác.
Tạo thư mục cho your_domain như sau:
sudo mkdir /var/www/your_domain
Tiếp theo, gán quyền sở hữu thư mục với $USERbiến môi trường:
sudo chown -R $USER:$USER /var/www/your_domain
Các quyền của gốc web của bạn phải chính xác nếu bạn chưa sửa đổi unmaskgiá trị của mình , nhưng bạn có thể đảm bảo bằng cách nhập:
sudo chmod -R 755 /var/www/your_domain
Tiếp theo, tạo một index.htmltrang mẫu bằng cách sử dụng nanohoặc trình chỉnh sửa yêu thích của bạn:
nano /var/www/your_domain/index.html
Bên trong, thêm HTML mẫu sau:
/var/www/your_domain/index.html
<html>
<head>
<title>Welcome to Your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>
Lưu và đóng tệp khi bạn hoàn tất.
Để Apache phân phát nội dung này, cần tạo một tệp máy chủ ảo với các lệnh chính xác. Thay vì sửa đổi /etc/apache2/sites-available/000-default.conftrực tiếp tệp cấu hình mặc định được đặt tại , hãy tạo một tệp mới tại :/etc/apache2/sites-available/your_domain.conf
$ sudo nano /etc/apache2/sites-available/your_domain.conf
Dán vào khối cấu hình sau, khối này tương tự như khối mặc định, nhưng được cập nhật cho thư mục và tên miền mới của chúng tôi:
/etc/apache2/sites-available/your_domain.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
ServerName your_domain
ServerAlias www.your_domain
DocumentRoot /var/www/your_domain
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Lưu ý rằng chúng tôi đã cập nhật DocumentRootthư mục mới của chúng tôi và ServerAdminvào một email mà quản trị viên trang your_domain có thể truy cập. Chúng tôi cũng đã thêm hai chỉ thị:, ServerNamethiết lập miền cơ sở phù hợp với định nghĩa máy chủ ảo này và ServerAliasxác định các tên khác phải khớp như thể chúng là tên cơ sở.
Lưu và đóng tệp khi bạn hoàn tất.
Hãy kích hoạt tệp bằng a2ensitecông cụ:
$ sudo a2ensite your_domain.conf
Vô hiệu hóa trang web mặc định được xác định trong 000-default.conf:
$ sudo a2dissite 000-default.conf
Tiếp theo, hãy kiểm tra lỗi cấu hình:
$ sudo apache2ctl configtest
Bạn sẽ thấy kết quả sau:
Output
Syntax OK
Khởi động lại Apache để triển khai các thay đổi của bạn:
$ sudo systemctl restart apache2
Apache bây giờ sẽ cung cấp tên miền của bạn. Bạn có thể kiểm tra điều này bằng cách điều hướng đến , nơi bạn sẽ thấy một cái gì đó như sau:http://your_domain
Cùng với đó, máy chủ ảo của bạn đã được thiết lập đầy đủ. Tuy nhiên, trước khi thực hiện thêm bất kỳ thay đổi hoặc triển khai ứng dụng nào, sẽ rất hữu ích nếu bạn chủ động kiểm tra cấu hình PHP của mình trong trường hợp có bất kỳ vấn đề nào cần được giải quyết.
- Bước 5: Kiểm tra xử lú PHP trên máy chủ Web của bạn
Để kiểm tra xem hệ thống của bạn có được cấu hình đúng cho PHP hay không, hãy tạo một tập lệnh PHP cơ bản có tên info.php. Để Apache tìm thấy tệp này và phân phát nó một cách chính xác, nó phải được lưu vào thư mục gốc web của bạn.
Tạo tệp tại gốc web bạn đã tạo ở bước trước bằng cách chạy:
$ sudo nano /var/www/your_domain/info.php
Thao tác này sẽ mở một tệp trống. Thêm văn bản sau, là mã PHP hợp lệ, bên trong tệp:
info.php
<?php
phpinfo();
?>
Khi bạn hoàn tất, hãy lưu và đóng tệp.
Bây giờ bạn có thể kiểm tra xem máy chủ web của bạn có thể hiển thị chính xác nội dung được tạo bởi tập lệnh PHP này hay không. Để dùng thử, hãy truy cập trang này trong trình duyệt web của bạn. Bạn sẽ cần lại địa chỉ IP công cộng của máy chủ.
Địa chỉ bạn sẽ muốn đến thăm là: