A WordPress installer for Arch Linux using XAMPP. Because apparently setting up a local dev environment is rocket science for some people.
Installs WordPress on Arch Linux using XAMPP. That's it. No magic, no bullshit, just straight-up functionality for people who can't be bothered to do it manually.
- A working WordPress installation (shocking, I know)
- Automatic dependency management (because reading package lists is hard)
- Smart detection of existing installations (no more "already installed" errors)
- Your needs*
- Automatic database creation (that's your job, genius)
- Automatic wp-config.php setup (learn to configure things yourself)
- Hand-holding through every step (this isn't Windows)
- Support for non-standard XAMPP installations (stick to the defaults)
- Magic fixes for broken MySQL configurations (learn to debug)
Before you even think about running this:
- Arch Linux (obviously, it's in the fucking title)
- Internet connection (for downloading stuff, duh)
- sudo privileges (don't be a scrub)
- Basic terminal knowledge (if you can't use a terminal, maybe stick to Windows)
- Optional: AUR helper (yay, paru, pikaur, or aurman) - if you don't have one, the script will install yay for you
bash <(curl -s https://raw.githubusercontent.com/DuckB1t/duckpress/main/install.sh)- Clone this repository:
git clone https://github.com/DuckB1t/duckpress.git
cd duckpress- Make the script executable (or it won't work, genius):
chmod +x install.sh- Run the installer:
./install.shPick your poison:
-
Interactive Mode (Default):
- CLI prompts for user input
- Allows customization of site folder
- For people who like to have control
-
Headless Mode:
- No user interaction
- Uses default values
- For automation nerds and lazy fucks
--headless # Run without prompts (for the brave souls)Fucked something up and want to start over? Here's how to nuke everything:
sudo /opt/lampp/lampp stop# Remove XAMPP package (if installed via AUR)
yay -R xampp
# or
paru -R xampp
# Remove XAMPP directory (this removes WordPress files and databases too)
sudo rm -rf /opt/lampp# Kill any remaining XAMPP processes
sudo pkill -f httpd
sudo pkill -f mysqld
sudo pkill -f proftpdAfter installation, here's how to control XAMPP (because you'll need to know this shit):
# Start XAMPP
sudo /opt/lampp/lampp start
# Stop XAMPP
sudo /opt/lampp/lampp stop
# Restart XAMPP (when things inevitably break)
sudo /opt/lampp/lampp restartIf you see a port conflict error (because of course something else is using port 80):
- The script will detect if ports 80 or 443 are in use
- You can choose to stop the conflicting service
- If you're still having issues, check what's hogging those ports:
sudo lsof -i :80
sudo lsof -i :443If you get permission errors (classic Linux experience):
- Make sure you're running the script with sudo (duh!)
- Check if XAMPP is properly installed
- If you're still having issues, check the permissions:
ls -la /opt/lampp/htdocs/Can't find XAMPP:
- Check if installed:
ls -la /opt/lampp - Check AUR package:
yay -Qi xampporparu -Qi xampp
Permission denied:
- Use sudo for system directories:
sudo rm -rf /opt/lampp - Check file ownership:
ls -la /opt/lampp/htdocs/
Stuck processes:
- Kill XAMPP processes manually:
sudo pkill -f httpd && sudo pkill -f mysqld - If MySQL won't start, try:
sudo /opt/lampp/lampp restart
Database removal fails:
- List databases:
/opt/lampp/bin/mysql -u root -e "SHOW DATABASES;" - Check if MySQL is running:
pgrep mysqld - Start MySQL:
sudo /opt/lampp/lampp startmysql
Found a bug? Want to make this script less shitty? Great!
- Fork this repository
- Create your feature branch
- Commit your changes
- Push to the branch
- Create a Pull Request
This project is licensed under the MIT License. Do whatever the fuck you want with it.
- WordPress team for making a decent CMS
- Apache Friends for XAMPP (even though it's bloated as hell)
- Arch Linux community for being elitist pricks (in a good way)
This script is made for real humans, not some corporate bullshit. Use this script to flex in front of your crush, impress your nerd friends, or just because you're too lazy to set up WordPress manually.
If you break your system using this script, that's on you. We're not responsible for your incompetence or your inability to read documentation.
BTW I use Arch. 😎 (not cringe.. ik yk)