本教程将介绍如何在已安装Nginx Web服务器而不是Apache的Ubuntu 16.04系统上安装和运行TYPO3 (版本8.1)网站。 这种设置通常称为LEMP = L inux + Nginx(发音为“ e ngine x”)+ M ySQL + P HP)。 Nginx是一个快速高效的HTTP服务器,使用的资源比Apache少,并提供了更快的页面,特别是静态文件。
1初步说明
我想使用文件根/var/www/www.example.com/web
将名为www.example.com
的虚拟机安装在这里。
你应该有一个工作的LEMP。 如果您还没有安装LEMP,请使用本教程: Ubuntu LEMP Server
因为我们必须使用root权限运行本教程的所有步骤,我们可以使用字符串sudo
在本教程中添加所有命令,也可以通过键入来成为root
sudo su
我将使用nano编辑器在shell上编辑配置文件,nano可以使用以下命令进行安装:
apt-get install nano
2安装TYPO3
首先我们将安装一些额外的PHP模块,这是Typo3所要求的:
apt-get install php7.0-soap php7.0-zip
我的www.example.com
网站的文档根目录是/var/www/www.example.com/web
- 如果不存在,创建如下:
mkdir -p /var/www/www.example.com/web
接下来,我们从http://typo3.org/download/下载TYPO3 8.1作为.tar.gz
文件,并将其放在我们的文档根目录中:
cd /var/www/www.example.com
wget get.typo3.org/8.1 -O typo3_src-8.1.2.tar.gz
tar xfz typo3_src-8.1.2.tar.gz
rm typo3_src-8.1.2.tar.gz
cd web
ln -s ../typo3_src-8.1.2 typo3_src
ln -s typo3_src/index.php index.php
ln -s typo3_src/typo3 typo3
建议使用作为用户www-data
和group www-data
运行的Nginx守护进程将文档根目录和TYPO3文件写入:
chown -R www-data:www-data /var/www/www.example.com
如果您尚未为TYPO3(包括MySQL TYPO3用户)创建了MySQL数据库,则可以按如下方式进行操作(在此示例中我命名数据库typo3
,用户名为typo3_admin
,密码为typo3_admin_password
):
mysql --defaults-file=/etc/mysql/debian.cnf
CREATE DATABASE typo3;
ALTER DATABASE typo3 CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost' IDENTIFIED BY 'typo3_admin_password';
GRANT ALL PRIVILEGES ON typo3.* TO 'typo3_admin'@'localhost.localdomain' IDENTIFIED BY 'typo3_admin_password';
FLUSH PRIVILEGES;
quit
接下来,我们在/ etc / nginx / sites-available /
目录中为www.example.com
vhost创建一个Nginx vhost配置,如下所示:
nano /etc/nginx/sites-available/www.example.com.vhost
server { listen 80; server_name www.example.com example.com; root /var/www/www.example.com/web; if ($http_host != "www.example.com") { rewrite ^ http://www.example.com$request_uri permanent; } index index.php index.html; location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } # Deny all attempts to access hidden files such as .htaccess, .htpasswd, .DS_Store (Mac). location ~ /\. { deny all; access_log off; log_not_found off; } location ~ \.php$ { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php/php7.0-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; fastcgi_buffer_size 128k; fastcgi_buffers 256 16k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_read_timeout 1200; } client_max_body_size 100M; location ~ /\.(js|css)$ { expires 604800s; } if (!-e $request_filename){ rewrite ^/(.+)\.(\d+)\.(php|js|css|png|jpg|gif|gzip)$ /$1.$3 last; } location ~* ^/fileadmin/(.*/)?_recycler_/ { deny all; } location ~* ^/fileadmin/templates/.*(\.txt|\.ts)$ { deny all; } location ~* ^/typo3conf/ext/[^/]+/Resources/Private/ { deny all; } location ~* ^/(typo3/|fileadmin/|typo3conf/|typo3temp/|uploads/|favicon\.ico) { } location / { if ($query_string ~ ".+") { return 405; } if ($http_cookie ~ 'nc_staticfilecache|be_typo_user|fe_typo_user' ) { return 405; } # pass POST requests to PHP if ($request_method !~ ^(GET|HEAD)$ ) { return 405; } if ($http_pragma = 'no-cache') { return 405; } if ($http_cache_control = 'no-cache') { return 405; } error_page 405 = @nocache; try_files /typo3temp/tx_ncstaticfilecache/$host${request_uri}index.html @nocache; } location @nocache { try_files $uri $uri/ /index.php$is_args$args; } }
此配置已经包含干净的URL所需的一切
(因为@nocache
位置中的try_files $ uri $ uri / /index.php$is_args$args;
行)。
接下来,确保您在/etc/nginx/mime.types中有以下行:
nano /etc/nginx/mime.types
[...] text/x-component htc; [...]
要启用vhost,我们从/ etc / nginx / sites-enabled /
目录创建一个符号链接:
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost
重新加载Nginx以使更改生效:
service nginx reload
在网站根目录下创建FIRST_INSTALL文件以启用TYPO3安装程序。
touch /var/www/www.example.com/web/FIRST_INSTALL
并将所有者更改为www数据,以便在安装完成后,TYPO3安装脚本可以删除该文件。
chown www-data:www-data /var/www/www.example.com/web/FIRST_INSTALL
我们必须调整几个php.ini值以匹配TYPO3的要求。 打开php.ini文件:
nano /etc/php/7.0/fpm/php.ini
并调整以下配置选项,使其具有以下值:
[....]
max_execution_time=240
[....]
post_max_size = 20M
[....]
upload_max_filesize = 20M
[....]
max_input_vars=1500
[....]
memory_limit = 256M
[....]
然后保存文件并重新启动PHP-FPM以加载新配置:
service php7.0-fpm restart
现在我们可以通过访问http://www.example.com/来启动基于Web的TYPO3安装程序
:
点击“系统看起来不错,继续”按钮开始安装过程。 如果此页面显示不满足所有先决条件的消息,则在继续安装之前先调整配置以匹配要求:
接下来填写数据库详细信息(用户: typo3_admin
;密码: typo3_admin_password
从我们创建typo3
数据库时),选择连接类型套接字,然后单击继续
:
在下一页上,选择使用现有的空数据库
, 然后
从下拉菜单中选择typo3
。 然后点击继续
:
接下来,为TYPO3管理员用户提供用户名和密码,并输入您的TYPO3网站的名称。 点击继续,
然后:
安装完成。 如果要从演示网站开始,而不是完全空的系统,请选择是,下载分发列表
选项(这不会立即安装演示数据,而只需在后台选择演示网站即可,您可以从中选择安装它)。 我会在这里选择不下载任何演示网站。 然后点击打开后端
:
管理区域可以在http://www.example.com/typo3/
下找到
。 使用用户名admin
和您在安装期间定义的密码登录:
并使用上面创建的TYPO3管理员用户登录。
并开始构建您的TYPO3网站。 前端将显示一个错误,如“服务不可用(503)在根级别找不到页面!” 直到您在后端添加根页面。 如果您还不熟悉这个CMS,我建议您看看如何在TYPO3中创建您的第一个网站的优秀TYPO3文档 。
3本教程的虚拟机镜像下载
本教程可以随时准备为ovf / ova格式的虚拟机映像使用Howtoforge订阅服务器。 VM格式与VMWare和Virtualbox兼容。 虚拟机映像使用以下登录详细信息:
SSH / Shell登录
用户名:administrator
密码:youcl
该用户具有sudo权限。
MySQL / MariaDB登录
用户名:root
密码:youcl
VM的IP为192.168.1.100,可以在/ etc / network / interfaces文件中更改。
TYPO3登录
用户名:admin
密码:youcl
请更改所有上述密码以保护虚拟机。
4链接
- TYPO3: http : //typo3.org/
- Nginx: http : //nginx.org/
- Nginx Wiki: http : //wiki.nginx.org/
- Ubuntu: http : //www.ubuntu.com/