最近有朋友問 Prestashop . 安裝遇到各種問題。起初希望程序員自己琢磨比較好。給“魚”是錯誤的,要給“漁”(釣魚的方法)。但因為朋友的各種問題實在太多,所以制作本安裝指南。也希望大家可以評論有用的知識。
前言:
一般程序員的常規方式是去( https://github.com/PrestaShop/PrestaShop/tree/1.7.6.5 ) GIT CLONE GITHUB_URL ;
git clone https://github.com/PrestaShop/PrestaShop.git
依賴:下載完成后:
composer install;
安裝:cd install 后;執行命令安裝:
php index_cli.php –domain=domain_name.com --db_server=mysql --db_name=prestashop --db_user=root --db_password=password --email=login@domain.com –password=12345678;
完成安裝截圖:
問題:
- 環境問題;
- 擴展問題;
- 安裝失敗的問題;
環境問題. 提出問題沒有什么意義,直接上解決方案:Docker 解決方案:
docker-compose.yml: compose docker 結構描述文件
###############################################################################
# Generated on phpdocker.io #
###############################################################################
version: "3.1"
services:
memcached:
image: memcached:alpine
container_name: prestashop-17-first-memcached
mailhog:
image: mailhog/mailhog:latest
container_name: prestashop-17-first-mailhog
ports:
- "7778:8025"
redis:
image: redis:alpine
container_name: prestashop-17-first-redis
mysql:
image: mysql:5.7
container_name: prestashop-17-first-mysql
working_dir: /application
volumes:
- .:/application
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=root
- MYSQL_USER=root
- MYSQL_PASSWORD=root
ports:
- "7779:3306"
mariadb:
image: mariadb:10.4
container_name: prestashop-17-first-mariadb
working_dir: /application
volumes:
- .:/application
environment:
- MYSQL_ROOT_PASSWORD=root
- MYSQL_DATABASE=root
- MYSQL_USER=root
- MYSQL_PASSWORD=root
ports:
- "7780:3306"
postgres:
image: postgres:11.1-alpine
container_name: prestashop-17-first-postgres
working_dir: /application
volumes:
- .:/application
environment:
- POSTGRES_USER=root
- POSTGRES_PASSWORD=root
- POSTGRES_DB=root
ports:
- "7781:5432"
elasticsearch:
image: elasticsearch:6.5.4
container_name: prestashop-17-first-elasticsearch
webserver:
image: nginx:alpine
container_name: prestashop-17-first-webserver
working_dir: /application
volumes:
- .:/application
- ./phpdocker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf
ports:
- "7777:80"
php-fpm:
build: phpdocker/php-fpm
container_name: prestashop-17-first-php-fpm
working_dir: /application
volumes:
- .:/application
- ./phpdocker/php-fpm/php-ini-overrides.ini:/etc/php/7.1/fpm/conf.d/99-overrides.ini
phpdocker/php-fpm/Dockerfile :配置基本環境GIT \ PHP擴展 等
FROM phpdockerio/php71-fpm:latest WORKDIR "/application" # Fix debconf warnings upon build ARG DEBIAN_FRONTEND=noninteractive # Install selected extensions and other stuff RUN apt-get update \ && apt-get -y --no-install-recommends install php-memcached php7.1-mysql php7.1-pgsql php-redis php7.1-sqlite3 php7.1-xmlrpc php7.1-xsl php-yaml php7.1-gd php7.1-intl \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/* # Install git RUN apt-get update \ && apt-get -y install git \ && apt-get clean; rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* /usr/share/doc/*
phpdocker/nginx/nginx.conf : 配置nginx
server { listen 80 default; client_max_body_size 108M; access_log /var/log/nginx/application.access.log; root /application/public; index index.php; if (!-e $request_filename) { rewrite ^.*$ /index.php last; } location ~ \.php$ { fastcgi_pass php-fpm:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PHP_VALUE "error_log=/var/log/nginx/application_php_errors.log"; fastcgi_buffers 16 16k; fastcgi_buffer_size 32k; include fastcgi_params; } location /status { fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $fastcgi_script_name; } }
phpdocker/nginx/php-ini-overrides.ini : 重寫 PHP 配置
upload_max_filesize = 100M post_max_size = 108M
以上實現 docker 的環境,創建完成文件后如下:
-/docker-compose.yml,
|-/phpdocker/
|-php-fpm/
|-Dockerfile :
|-php-ini-overrides.ini
|-nginx/
|-nginx.conf :
擴展問題:如上配置安裝擴展:
php-memcached php7.1-mysql php7.1-pgsql php-redis php7.1-sqlite3 php7.1-xmlrpc php7.1-xsl php-yaml php7.1-gd php7.1-intl
安裝失敗問題:
1,Link to database cannot be established: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: nodename nor servname provided, or not known
- 配置出錯,文件路徑( install/classes/datas.php);
2,Link to database cannot be established: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)
- STEP 1,數據庫配置錯誤;修改數據庫用戶,查看是否一定與ROOT用戶有關。
- STEP 2,如果還是上述錯誤提示。則是配置沒有被讀取;可直接修改 index_cli.php 配置數據文件; 如 1.7.6.5版本文件路徑( install/classes/datas.php);.
3,加載12% 數據表創建問題、23% 語言加載失敗 過程中失敗;
- 12% 數據表創建問題:檢查數據庫的配置與字符編碼;
- 23% 語言加載失敗:檢查是否連接網絡;
4,安裝依賴出錯或太慢;
5,界面版安裝 ?
- 參考;
6,開啟debug ?
- config/define.inc.php 修改 define('_PS_MODE_DEV_', true);
7,Link to database cannot be established: SQLSTATE[HY000] [2002] Connection refused
- app/config/parameters.php 修改數據庫配置;
當使用 docker 時,database_host = container name ; port = 空 ;
8,504 Gateway Time-out
- 查看域名是否是 http://yourself.com/install/ ;
- 刪除 install 目錄;
9,-