Разворачиваем сайт написан на php с использованием БД mysql под дистрибутивом Ubuntu и под управлением веб-сервера apache. Эта заметка будет полезна как для администратора, так и для веб-программиста.
У нас имеется архив с БД и кодом. Еще сайт имеет поддержку SSL, и у нас есть нужные сертификаты.
|
1
2
3
4
5
6
|
root@pc:~# ls -ltotal 2568972-rw-rw-r-- 1 alex alex 1976 Oct 7 08:29 2013-www.site.org.crt-rw-rw-r-- 1 alex alex 1675 Oct 7 08:29 2013-www. site.org.key-rw-rw-r-- 1 alex alex 844527324 Oct 8 04:13 site.org.gz-rw-rw-r-- 1 alex alex 6015814 Oct 4 09:46 site.org.sql |
Для начала нужно установить и настроить веб-сервер apache.
|
1
|
root@pc:~# apt-get install apache2 |
Теперь создаем виртуальный хост для нашего сайта с поддержкой SSL. Конфиг должен быть следущего вида.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
root@pc:~# cat /etc/apache2/sites-available/site.org ServerName site.org ServerAdmin site@mail.ru ServerAlias www.site.org DocumentRoot /var/www/site.org Options FollowSymLinks AllowOverride All Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all Alias /uploads "/var/www/site.org/uploads/" ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error_site.org.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access_site.org.log combined Alias /doc/ "/usr/share/doc/" Options Indexes MultiViews FollowSymLinks AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 ServerName site.org ServerAdmin site@mail.ru ServerAlias www.site.org DocumentRoot /var/www/site.org Options FollowSymLinks AllowOverride All Options FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all Alias /uploads "/var/www/site.org/uploads/" ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ AllowOverride All Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error_site.org.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access_site.org.log combined Alias /doc/ "/usr/share/doc/" Options MultiViews FollowSymLinks AllowOverride All Order deny,allow Deny from all Allow from 127.0.0.0/255.0.0.0 ::1/128 SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown |
Далее создаем директорию для сертификатов и переносим их (путь к ним прописан в конфиге виртуального хоста). Также добавляем модуль SSL и активируем сайт.
|
1
2
3
4
5
6
|
root@pc:~# mkdir /etc/apache2/sslroot@pc:~# mv 2013-www.site.org.crt /etc/apache2/ssl/apache.crtroot@pc:~# mv 2013-www. site.org.key /etc/apache2/ssl/apache.keyroot@pc:~# a2enmod sslroot@pc:~# a2ensite site.orgroot@pc:~# service apache2 reload |
Если нужно проверить роботу SSL не имея реальных сертификатов, то просто создаем свои.
|
1
2
|
root@pc:~# openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crtroot@pc:~# /etc/init.d/apache2 reload |
Файл настроек ports.conf должен быть следующего вида.
|
1
2
3
4
5
6
7
8
9
|
root@pc# cat /etc/apache2/ports.confNameVirtualHost *:80Listen 80 NameVirtualHost *:443 Listen 443 NameVirtualHost *:443 Listen 443 |
Если на сайте используются реврайты, не забываем включить модуль
|
1
|
root@pc:~# a2enmod rewrite |
Теперь сайт должен работать на 80 и 443 порту. Хочу заметить, что сертификаты могут быть только для одного домена и не распространяться на субдомены.
Ну, теперь приступаем к развертке кода сайта. Нам нужно создать папку для сайта и залить в нее весь код.
|
1
2
3
|
root@pc:~# mkdir /var/www/site.orgroot@pc:~# cd /var/www/site.orgroot@pc:/var/www/site.org# tar xzvf /home/alex/site.org.gz |
Ставим базу данных с нужными модулями для работы с веб-сервером и обработкой php.
|
1
|
root@pc:~# apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql |
Теперь запускаем shell скрипт для инициализации MySQL директории с базами данных и таблиц.
|
1
|
root@pc:~# mysql_install_db |
Теперь можно запустить скрипт для быстрой чистки тестовых юзеров, БД и смени пароля рута.
|
1
|
root@pc:~# /usr/bin/mysql_secure_installation |
Для удобной работы с mysql, нужно добавить phpmyadmin и прописать настройки в apache.
|
1
2
3
4
5
6
|
root@pc:~# apt-get install phpmyadminroot@pc:~# vim /etc/apache2/apache2.conf…Include /etc/phpmyadmin/apache.conf…root@pc:~# /etc/init.d/apache2 reload |
Чтобы залогиниться в phpmyadmin нужно перейти в браузере по ссылке:
|
1
|
/phpmyadmin (Например http://192.168.2.103/phpmyadmin/ ) |
и ввести логин и пароль, который задавали при установке mysql (Пример – root / alex9343).
Если большая база будет импортироваться в phpmyadmin, то нужно увеличить размер загружаемых файлов в php.ini.
|
1
2
3
4
|
root@pc:~# vim /etc/php5/apache2/php.ini…upload_max_filesize = 30M… |
Но можно и просто вручную скопировать весь sql и вставить в phpmyadmin, после создания нужной базы (туговато, но можно).
Или же импортировать с консоли.
Далее нужно установить поддержку php.
|
1
|
root@pc:~# apt-get install php5 libapache2-mod-php5 php5-mcrypt |
и сразу добавляем php индексную страничку
|
1
2
3
4
5
|
root@pc:~# cat /etc/apache2/mods-enabled/dir.conf DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htmroot@pc:~# /etc/init.d/apache2 reload |
Если нужно установить дополнительные модуль, можно посмотреть список доступных в репозиториях модулей для установленной версии php.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
root@pc:~# apt-cache search php5-php5-cgi - server-side, HTML-embedded scripting language (CGI binary)php5-cli - command-line interpreter for the php5 scripting languagephp5-common - Common files for packages built from the php5 sourcephp5-curl - CURL module for php5php5-dbg - Debug symbols for PHP5php5-dev - Files for PHP5 module developmentphp5-gd - GD module for php5php5-gmp - GMP module for php5php5-ldap - LDAP module for php5php5-mysql - MySQL module for php5php5-odbc - ODBC module for php5php5-pgsql - PostgreSQL module for php5php5-pspell - pspell module for php5php5-recode - recode module for php5php5-snmp - SNMP module for php5php5-sqlite - SQLite module for php5php5-tidy - tidy module for php5php5-xmlrpc - XML-RPC module for php5php5-xsl - XSL module for php5… |
После всех настроек можно проверить работоспособность сайта на разных портах (80, 443 – http, https). Поскольку я все разворачивал на виртуальной машине, а на хостовой у меня Windows – нужно прописать в C:\Windows\System32\drivers\etc\hosts ассоциацию домена и IP (т.е. дать понять браузеру, что домен site.org нужно искать по IP=192.168.2.103, по IP моей виртуальной машине, где мы все развернули).
|
1
2
3
4
5
|
C:\Windows\System32\drivers\etc\hosts…192.168.2.103 site.org192.168.2.103 www.site.org… |
Теперь можно проверить или мы попадаем на нужный сервер при переходе по домену site.org
|
1
2
3
4
5
6
7
|
C:\Users\alex>ping site.orgPinging site.org [192.168.2.103] with 32 bytes of data:Reply from 192.168.2.103: bytes=32 time<1ms TTL=64Reply from 192.168.2.103: bytes=32 time<1ms TTL=64Reply from 192.168.2.103: bytes=32 time<1ms TTL=64Reply from 192.168.2.103: bytes=32 time<1ms TTL=64 Ping statistics for 192.168.2.103: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms C:\Users\alex> |
Ну все.
vCenter Converter Standalone 9.0.0 download (далее…)
Service pack for HPE ProLiant Gen10 and 10 Plus (ver 2026.03.00.00) (SPP2026030000.2026_0326.14.iso) Service Pack for…
Service pack for HPE ProLiant Gen10 and 10 Plus (ver 2026.01.00.00) (SPP2026010000.2026_0206.13.iso) Service Pack for…
# add wg interface /interface/wireguard/add listen-port=51820 mtu=1300 # add ip on wg interface /ip/address/add address=10.100.10.1…
VMware remote console (VMRC) 13.0.1 download Last version: VMware Remote Console 13.0.1 | 29 Sept…
Gen10 Service Pack for ProLiant (SPP) Version 2025.01 Service Pack for ProLiant 2025.01 Gen10(P81139_001_gen10spp-2025.01.00.00-SPP2025010000.2025_0119.14.iso 8.22…