如何在 Debian 8 上使用 Nginx 和 MariaDB 安装 TYPO3 7 (Jessie)
在此页
- 初步说明
- 安装 APCu
- 安装 TYPO3
- 虚拟机映像
- SSH登录
- MariaDB 登录
本教程介绍如何在 Debian 8 (Jessie) 服务器上安装和配置 TYPO3(版本 7)网站,该服务器安装了 Nginx 作为 Web 服务器,MariaDB 作为数据库服务器。 Nginx 是一个快速的网络服务器,在此设置中取代了标准的网络服务器“Apache”,MariaDB 是一个比 MySQL 更快的 MySQl 分支,由 MySQL 的原始发明者 Monty Widenius 开发。
Typo3 是一个用 PHP 编写的企业级 CMS 系统,拥有庞大的用户和开发人员社区。
初步说明
我想在一个名为 www.example.com 的虚拟主机中安装 TYPO3,文件根目录为 /var/www/www.example.com/web。我的服务器使用 IP 地址 192.168.1.100,请将所有配置文件和命令中的此 IP 替换为您服务器的 IP 地址。
本教程假设您已经安装了 Nginx,如果没有,请先按照本指南安装 Nginx、PHP 和 MariaDB。
在服务器上以 root 用户身份登录并继续下一步。
安装 APCu
APCu 是一个免费开放的 PHP 操作码缓存器,用于缓存和优化 PHP 中间代码,它将以前由 APC 提供的功能添加到现在集成的 PHP opcache 中。它类似于其他 PHP 操作码缓存器,例如 eAccelerator 和 XCache。强烈建议安装其中之一以加速您的 PHP 页面。
APC 可以安装如下:
apt-get install php5-apcu
如果您使用 PHP-FPM 作为您的 FastCGI 守护进程,请按如下方式重新启动它:
systemctl restart php5-fpm.service
安装 TYPO3
我的 www.example.com 网站的文档根目录是 /var/www/www.example.com/web - 如果它不存在,请按如下方式创建它:
mkdir -p /var/www/www.example.com/web
接下来我们从 https://typo3.org/download/ 下载 TYPO3 7.6.4 作为 .tar.gz 文件并将其放在我们的文档根目录中:
cd /tmp
wget http://downloads.sourceforge.net/project/typo3/TYPO3%20Source%20and%20Dummy/TYPO3%207.6.4/typo3_src-7.6.4.tar.gz
tar xfz typo3_src-7.6.4.tar.gz
mv typo3_src-7.6.4 /var/www/www.example.com/
cd /var/www/www.example.com/web
ln -s ../typo3_src-7.6.4 typo3_src
ln -s typo3_src/index.php
ln -s typo3_src/typo3建议使文档根目录和其中的 TYPO3 文件可由以用户 www-data 和组 www-data 运行的 nginx 守护程序写入:
chown -R www-data:www-data /var/www/www.example.com/web
如果你还没有为TYPO3创建一个MySQL数据库(包括一个MySQL TYPO3用户),你可以按如下方式创建(我在本例中将数据库命名为typo3,用户名为typo3_admin,密码为typo3_admin_password):
mysqladmin --defaults-file=/etc/mysql/debian.cnf create typo3
mysql --defaults-file=/etc/mysql/debian.cnf
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 虚拟主机创建一个 nginx 虚拟主机配置,如下所示:
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/php5-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; [...]
为了启用虚拟主机,我们从 /etc/nginx/sites-enabled/ 目录创建一个指向它的符号链接:
cd /etc/nginx/sites-enabled/
ln -s /etc/nginx/sites-available/www.example.com.vhost www.example.com.vhost重新加载 nginx 以使更改生效:
systemctl reload nginx.service
然后为 TYPO3 调整 php.ini 文件中的一些值。我在这个服务器上使用php-fpm,所以文件是/etc/php5/fpm/php.ini。使用编辑器打开文件:
nano /etc/php5/fpm/php.ini
并调整以下设置。
[...]
always_populate_raw_post_data=-1
[...]
max_execution_time=240
[...]
post_max_size = 20M
[...]
upload_max_filesize = 20M
[...]
max_input_vars=2000
[...]应用更改:
systemctl reload php5-fpm.service
现在我们可以通过访问 http://www.example.com/ 启动基于 Web 的 TYPO3 安装程序 - 系统将提示您首先在文档根目录中创建文件 FIRST_INSTALL 以便安装可以继续:
cd /var/www/www.example.com/web/
touch FIRST_INSTALL
chown www-data:www-data FIRST_INSTALL现在重新加载页面。安装程序检查是否满足所有先决条件 - 如果有其他警告,您应该立即尝试修复它们:
单击继续。
接下来填写数据库详细信息(用户:typo3_admin;密码:typo3_admin_password 来自我们创建 typo3 数据库时的密码),然后单击继续:
在下一页上选择使用现有的空数据库并从下拉菜单中选择 typo3。然后点击继续:
接下来,为 TYPO3 管理员用户提供用户名和密码,并为您的站点命名。之后点击继续:
安装现已完成。如果你想从一个演示网站而不是一个完全空的系统开始,请选中是,下载分发列表复选框(这不会立即安装演示数据,但只是在后台提供一个演示网站,你可以从那里选择安装它)。我会选择从一个空页面开始,这样我就可以建立一个自定义网站。然后点击打开后台:
可以在 http://www.example.com/typo3/ 下找到管理区域。使用您在安装期间定义的用户名 admin 和密码登录:
现在使用您在 Typo3 设置期间选择的用户名和密码登录。
Typo3 已成功安装。现在你可以开始建立你的 Typo3 网站了。
虚拟机映像
本教程以 OVA/OVF 格式的虚拟机可供 Howtoforge 订阅者使用。 VM 格式兼容 VMWare 和 Virtualbox 以及其他可以导入此格式的工具。您可以在顶部的右侧菜单中找到下载链接。单击文件名开始下载。
VM 的登录详细信息为:
错字3 登入
用户名:admin
密码:howtoforgeSSH登录
用户名:root
密码:howtoforge登录
用户名:root
密码:howtoforge请在首次启动后更改密码。
VM 配置为静态 IP 192.168.1.100,可以在文件 /etc/network/interfaces 中更改 IP。
链接
- TYPO3:http://typo3.org/
- nginx:http://nginx.org/
- nginx 维基:http://wiki.nginx.org/
- Debian:http://www.debian.org/