Запуск вашего приложения
- Начальная настройка
- Локальный сервер разработки
- Размещение с Apache
- Размещение с Nginx
- Размещение с Vagrant
- Инициализация приложения
Приложение CodeIgniter 4 может быть запущено несколькими способами: размещено на веб-сервере, с использованием виртуализации или с помощью командной строки CodeIgniter для тестирования. В этом разделе рассматривается каждый из этих методов и описываются некоторые из их плюсов и минусов.
Если вы новичок в CodeIgniter, пожалуйста, ознакомьтесь с разделом Начало работы руководства пользователя, чтобы начать изучение создания динамических PHP-приложений. Приятного изучения!
Начальная настройка
- Откройте файл app/Config/App.php в текстовом редакторе и задайте свой базовый URL. Если вам нужна большая гибкость, базовый URL можно задать в файле .env как
app.baseURL="http://example.com/". (Всегда используйте косую черту в конце базового URL!) - Если вы планируете использовать базу данных, откройте файл app/Config/Database.php в текстовом редакторе и задайте настройки вашей базы данных. Также их можно задать в файле .env.
Дополнительной мерой для использования в производственных средах является отключение отчетов об ошибках PHP и любой другой функциональности, предназначенной только для разработки. В CodeIgniter это можно сделать, установив константу ENVIRONMENT, более подробно описанную на странице страницы сред. По умолчанию приложение будет работать в среде «производство». Для использования средств отладки вы должны установить среду на «разработка».
Примечание
Если вы будете запускать свой сайт с помощью веб-сервера (например, Apache или Nginx), вам нужно будет изменить права доступа к папке writable внутри вашего проекта, чтобы она была доступна для записи пользователю или учетной записи, используемой вашим веб-сервером.
Локальный сервер разработки
CodeIgniter 4 поставляется с локальным сервером разработки, использующим встроенный веб-сервер PHP с маршрутизацией CodeIgniter. Вы можете запустить его с помощью скрипта serve следующим командным способом в основной директории:
php spark serve
Это запустит сервер, и вы сможете просматривать свое приложение в браузере по адресу http://localhost:8080.
Примечание
Встроенный сервер разработки следует использовать только на локальных машинах разработки. Его НИКОГДА не следует использовать на производственном сервере.
Если вам нужно запустить сайт на хосте, отличном от localhost, вам сначала нужно добавить хост в файл hosts. Точное расположение файла различается в каждой из основных операционных систем, хотя все системы типа Unix (включая OS X) обычно хранят этот файл в /etc/hosts.
Локальный сервер разработки можно настроить с помощью трех командных параметров:
-
Вы можете использовать параметр командной строки
--hostдля указания другого хоста для запуска приложения:php spark serve --host example.dev
-
По умолчанию сервер работает на порту 8080, но у вас может быть несколько сайтов или другое приложение уже использует этот порт. Вы можете использовать параметр командной строки
--portдля указания другого порта:php spark serve --port 8081
-
Вы также можете указать конкретную версию PHP для использования с помощью параметра командной строки
--php, задав значение пути к исполняемому файлу PHP, который вы хотите использовать:php spark serve --php /usr/bin/php7.6.5.4
Размещение с Apache
Веб-приложение CodeIgniter4 обычно размещается на веб-сервере. Модуль httpd Apache является «стандартной» платформой и предполагается во многих наших документах.
Apache входит в состав многих платформ, но его также можно загрузить вместе с базой данных и PHP с сайта Bitnami.
.htaccess
Модуль «mod_rewrite» позволяет использовать URL-адреса без «index.php», и это предполагается в нашем руководстве пользователя.
Убедитесь, что модуль переписывания включен (не закомментирован) в основном файле конфигурации, например, в apache2/conf/httpd.conf:
LoadModule rewrite_module modules/mod_rewrite.so
Также убедитесь, что элемент <Directory> корневого документа по умолчанию также включает это, в настройке «AllowOverride»:
<Directory "/opt/lamp/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Виртуальное хостинг
Мы рекомендуем использовать «виртуальное хостинг», чтобы запускать ваши приложения. Вы можете настроить различные псевдонимы для каждого приложения, над которым работаете.
Убедитесь, что модуль виртуального хостинга включен (не закомментирован) в основном файле конфигурации, например, в apache2/conf/httpd.conf:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
Добавьте алиас хоста в файл «hosts», обычно /etc/hosts в системах типа Unix или c:/Windows/System32/drivers/etc/hosts в Windows. Добавьте строку в файл. Это может быть, например, «myproject.local» или «myproject.test»:
127.0.0.1 myproject.local
Добавьте элемент <VirtualHost> для вашего веб-приложения в конфигурацию виртуального хостинга, например, в apache2/conf/extra/httpd-vhost.conf:
<VirtualHost *:80>
DocumentRoot "/opt/lamp/apache2/htdocs/myproject/public"
ServerName myproject.local
ErrorLog "logs/myproject-error_log"
CustomLog "logs/myproject-access_log" common
</VirtualHost>
Если папка вашего проекта не является подпапкой корневого каталога Apache, вам может потребоваться вложенный элемент <Directory> в элементе <VirtualHost>, чтобы предоставить веб-серверу доступ к файлам.
Тестирование
При указанной выше конфигурации ваш веб-приложение можно будет открыть по адресу http://myproject.local в браузере.
После каждого изменения конфигурации Apache необходимо перезапустить сервер.
Размещение с Nginx
Nginx является вторым по распространенности HTTP-сервером для веб-хостинга. Здесь вы найдете пример конфигурации с использованием PHP 7.3 FPM (unix-сокеты) под Ubuntu Server.
Эта конфигурация позволяет использовать URL-адреса без «index.php» и использовать «404 - Файл не найден» CodeIgniter для URL, заканчивающихся на «.php».
server {
listen 80;
listen [::]:80;
server_name example.com;
root /var/www/example.com/public;
index index.php index.html index.htm;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
# With php-fpm:
fastcgi_pass unix:/run/php/php7.3-fpm.sock;
# With php-cgi:
# fastcgi_pass 127.0.0.1:9000;
}
error_page 404 /index.php;
# deny access to hidden files such as .htaccess
location ~ /\. {
deny all;
}
}
Размещение с Vagrant
Виртуализация — эффективный способ протестировать ваше веб-приложение в целевой среде, даже если вы разрабатываете его на другой. Даже если вы используете одну и ту же платформу для обоих случаев, виртуализация обеспечивает изолированную среду для тестирования.
В кодовой базе есть VagrantFile.dist, который можно скопировать в VagrantFile и настроить для вашей системы, например, включить доступ к конкретным базам данных или кэш-сервисам.
Настройка
Предполагается, что у вас установлен VirtualBox и Vagrant для вашей платформы.
Файл конфигурации Vagrant предполагает, что у вас настроена установка ubuntu/bionic64 Vagrant box на вашей системе:
vagrant box add ubuntu/bionic64
Тестирование
После настройки вы можете запустить свое веб-приложение внутри виртуальной машины командой:
vagrant up
Ваше веб-приложение будет доступно по адресу http://localhost:8080, отчет о покрытии кода для вашего сборки по адресу http://localhost:8081 и руководство пользователя по нему по адресу http://localhost:8082.
Инициализация приложения
В некоторых случаях вам потребуется загрузить фреймворк, не запуская все приложение. Это особенно полезно для модульного тестирования вашего проекта, но также может быть полезно для использования сторонних инструментов для анализа и изменения вашего кода. Фреймворк поставляется с отдельным скриптом инициализации для этой ситуации: system/Test/bootstrap.php.
Большинство путей к вашему проекту определяются во время процесса инициализации. Вы можете переопределить их с помощью предопределенных констант, но при использовании значений по умолчанию убедитесь, что ваши пути соответствуют ожидаемой структуре каталогов для вашего способа установки.
© 2014–2020 British Columbia Institute of Technology
Licensed under the MIT License.
https://codeigniter.com/user_guide/installation/running.html