Typecho — очень легкая программа для ведения блогов с открытым исходным кодом. В этой статье будет развернут полный блог typecho с нуля в соответствии с требованиями установки Typecho.
Компоненты, необходимые для Typecho:
1. PHP5.1 или выше
2. Поддержите любой из Mysql, PostgreSQL, SQLite и установите соответствующие расширения в PHP.
3. Поддержка CURL или сокетов
4. Поддержка расширения mbstring или iconv
1 установка PHP
1.1 Источник обновлений
Сначала установите набор инструментов для управления источниками
apt-get install software-properties-common
Добавить исходный код PHP Ondřej Surý
add-apt-repository ppa:ondrej/php
Обновите источник локальной системы
apt-get update
1.2 Установите PHP7.4
Установите PHP7.4, обратите внимание на mbstring и mysql.
apt-get install php7.4 php7.4-fpm php7.4-mysql php7.4-gd php7.4-mbstring
Запустите его после завершения установки.
service php7.4-fpm start
После того, как PHP установлен, его нельзя использовать напрямую, потому что PHP — это инструмент для обработки страниц и не может обрабатывать http-запросы. Итак, нам нужно установить Nginx в качестве прокси. Если вы хотите создать блог, поддерживающий https, рекомендуется скомпилировать и установить nginx с модулем ssl.Способ установки можно найти в этом блоге .
После завершения установки nginx нам также необходимо подключить PHP и Nginx, мы можем подключаться через socks или порты. У меня есть некоторые проблемы, когда я пытаюсь подключиться с помощью socks, что, вероятно, связано с версией nginx.Вот некоторые связанные обсуждения. Чтобы быть в безопасности, мы используем порты для подключения PHP и Nginx.
1.3 Настройка PHP7.4
Нам нужно изменить файл конфигурации, чтобы разрешить PHP подключаться к nginx по порту.
nano /etc/php/7.4/fpm/pool.d/www.conf
Найдите элемент прослушивания, измените /run/php/php7.4-fpm.sock на 127.0.0.1:9000 и сохраните файл.
Перезапустите службу PHP
service php7.4-fpm reload
В это время вы можете использовать команду lsof -i:9000 для проверки состояния мониторинга порта 9000. Если выводится следующая информация, это означает, что с конфигурацией PHP проблем нет.
2 Установка майкл
Установить Mysql под ubuntu очень просто, нужна всего одна строка команды:
sudo apt install mysql-server
В настоящее время пароль пользователя root пуст, мы вводим mysql как root, чтобы изменить пароль, и создаем базу данных для typecho:
mysql
#进入mysql后更改root密码为mynewpassword
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'mynewpassword';
#创建一个名为typecho_blog的数据库
CREATE DATABASE typecho_blog;
#随后退出mysql
exit
Затем, чтобы войти в mysql как root, вам нужно использовать команду «mysql -u root -p».
3 Развертывание typecho
Создайте новый каталог где угодно, куда мы собираемся установить программу typecho (каталог для этой демонстрации — /home/typecho).
#新建目录
mkdir -p /home/typecho
#进入目录
cd /home/typecho
#下载源码(可以在typecho官网找到)
wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip
#解压源码
unzip typecho.zip
#对整个源码目录赋予足够的权限
chmod -R 777 /home/typecho
После завершения распаковки приступаем к настройке Nginx.
4 Связь между Nginx и PHP, установка блога
Ниже приведен пример конфигурации соединения Nginx с PHP.После завершения настройки перезапустите nginx и зайдите на свое собственное доменное имя в браузере.
server {
listen 80;
server_name abc.com;
root /home/typecho/;
index index.php;
location ~ .*\.php(\/.*)*$ {
root /home/typecho/;
fastcgi_split_path_info ^(.+?.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
Нажмите "Далее"
Настройте базу данных в соответствии с информацией только что
После завершения настройки вы можете войти в блог.
5 Поддержка конфигурации https
Чтобы блог поддерживал https, должны быть соблюдены следующие условия:
1. Ваше доменное имя имеет SSL-сертификат
2. Nginx включает модуль ssl
Первым делом заходим в предысторию typecho-настроек, и меняем http адреса сайта на https.
Затем мы входим в каталог установки typecho, редактируем файл «config.inc.php» и добавляем этот код:
define('__TYPECHO_SECURE__',true);
Затем нам также нужно изменить файл конфигурации nginx для поддержки ssl, Ниже приведен пример файла конфигурации:
server {
listen 443 ssl;
server_name abc.com;
#注意ssl证书路径,替换成你自己的
ssl_certificate /home/ssl_cert/abc.com_bundle.pem;
ssl_certificate_key /home/ssl_cert/abc.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
root /home/typecho/;
index index.php;
location ~ .*\.php(\/.*)*$ {
root /home/typecho/;
fastcgi_split_path_info ^(.+?.php)(/.*)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
После перезапуска nginx снова посетите веб-сайт https, и вы обнаружите, что он стал безопасным.
Теперь другая проблема: если вы напрямую обращаетесь к доменному имени, браузер обычно по умолчанию обращается к http (порт 80), если вы хотите принудительно получить доступ к порту 443, вам нужно настроить перенаправление портов в nginx. Эта часть этой статьи не будет вдаваться в подробности, пожалуйста, Baidu самостоятельно ~