Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
php_server [2025/10/28 16:56] MediocreMetastasisphp_server [2025/10/29 02:17] (current) MediocreMetastasis
Line 1: Line 1:
 ====== Setting up a server to run php code ====== ====== Setting up a server to run php code ======
  
-==== Download Docker ==== +===== Download Docker ====
-the wiki didn't save what I wrote I'll re-write it later +Follow instructions on this page 
-==== Set up Directory ====+[[https://docs.docker.com/get-started/get-docker/|Docker Installation]] 
 + 
 +You also want to install the httpd package by running this command in a terminal 
 + 
 +<code -
 +docker pull httpd 
 +</code> 
 + 
 +===== Set up Directory ====
 +Create the files and folders shown below 
 +<code ->
 |-public-html/ |-public-html/
-| |-+| |-index.php 
 +| |- ...
 |-docker-compose.yml |-docker-compose.yml
 |-DockerFile |-DockerFile
 |-php.ini |-php.ini
-==== Edit files ==== +</code> 
-edit DockerFile and docker-compose.yml + 
-==== Build and Activate Server ====+public-html/ is self explanatory. It's all the files the user will be able to access. That being .php files, .html files, stylesheets and javascript code, ect. 
 + 
 +docker-compose.yml and DockerFile will hold the code to initialize the server. They're like a bash script. 
 + 
 +php.ini is the config file for your php server. this let's you change parameters and enable extensions like sql. 
 + 
 +===== Edit files ===== 
 + 
 +Edit the DockerFile and run this command: 
 +<code -> 
 +FROM php:8.2-apache 
 + 
 +# Enable mod_rewrite (needed for .htaccess) 
 +RUN a2enmod rewrite 
 + 
 +# Allow .htaccess files by updating Apache config 
 +RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf 
 + 
 +# Copy your website files 
 +COPY ./public-html/ /var/www/html/ 
 +# Copy custom php.ini 
 +COPY php.ini /usr/local/etc/php/conf.d/custom.ini 
 + 
 +# Optional: ensure permissions are correct 
 +RUN chown -R www-data:www-data /var/www/html 
 +</code> 
 +Some of this code sets up the .htaccess file that is included in the public-html/ folder 
 + 
 +You also want to edit the docker-compose.yml file and paste in this code: 
 +<code -> 
 +version: "3.9" 
 + 
 +services: 
 +  web: 
 +    build: . 
 +    ports: 
 +      - "8080:80" 
 +    volumes: 
 +      - ./public-html:/var/www/html 
 +      - ./php.ini:/usr/local/etc/php/conf.d/custom.ini 
 +</code> 
 +You do not need to edit the php.ini. It is included for if and when you need to use it. 
 +You can also edit the 2 docker files to let you run a sql server alongside your web server. 
 + 
 +===== Build and Activate Server ====
 + 
 +open up a terminal located in your directory and run these commands: 
 +<code -> 
 +docker compose build 
 +docker compose up -d 
 +</code> 
 +Save these commands for later. You'll need to run them everytime you edit the DockerFile, docker-compose.yml, or php.ini file. You can also use these commands to activate the server.


php_server.1761667017.txt.gz · Last modified: by MediocreMetastasis
CC Attribution-Share Alike 4.0 International Except where otherwise noted, content on this wiki is licensed under the following license: CC Attribution-Share Alike 4.0 International